From fc1bde41bd4c059cf4f8b75e29c6be5eb1ea600f Mon Sep 17 00:00:00 2001 From: "kong[bot]" <123129154+kong[bot]@users.noreply.github.com> Date: Sun, 2 Aug 2026 14:59:06 +0000 Subject: [PATCH] chore(api): sync OpenAPI contract --- internal/apiclient/client.gen.go | 6481 +++++++++++++++++++++++++++--- openapi/openapi.yaml | 2418 ++++++++++- 2 files changed, 8223 insertions(+), 676 deletions(-) diff --git a/internal/apiclient/client.gen.go b/internal/apiclient/client.gen.go index e96a6ef..8180742 100644 --- a/internal/apiclient/client.gen.go +++ b/internal/apiclient/client.gen.go @@ -28,6 +28,27 @@ const ( UserTokenScopes userTokenContextKey = "UserToken.Scopes" ) +// Defines values for AuthInsightsInterval. +const ( + Day AuthInsightsInterval = "day" + Month AuthInsightsInterval = "month" + Week AuthInsightsInterval = "week" +) + +// Valid indicates whether the value is a known member of the AuthInsightsInterval enum. +func (e AuthInsightsInterval) Valid() bool { + switch e { + case Day: + return true + case Month: + return true + case Week: + return true + default: + return false + } +} + // Defines values for AuthSessionProvider. const ( AuthSessionProviderAnonymous AuthSessionProvider = "anonymous" @@ -346,6 +367,99 @@ func (e DatabaseStatsGranularity) Valid() bool { } } +// Defines values for DeploymentPhaseName. +const ( + DeploymentPhaseNameBuild DeploymentPhaseName = "build" + DeploymentPhaseNameCheckout DeploymentPhaseName = "checkout" + DeploymentPhaseNameImage DeploymentPhaseName = "image" + DeploymentPhaseNameProvisioning DeploymentPhaseName = "provisioning" + DeploymentPhaseNameQueue DeploymentPhaseName = "queue" + DeploymentPhaseNameRollout DeploymentPhaseName = "rollout" + DeploymentPhaseNameVerification DeploymentPhaseName = "verification" +) + +// Valid indicates whether the value is a known member of the DeploymentPhaseName enum. +func (e DeploymentPhaseName) Valid() bool { + switch e { + case DeploymentPhaseNameBuild: + return true + case DeploymentPhaseNameCheckout: + return true + case DeploymentPhaseNameImage: + return true + case DeploymentPhaseNameProvisioning: + return true + case DeploymentPhaseNameQueue: + return true + case DeploymentPhaseNameRollout: + return true + case DeploymentPhaseNameVerification: + return true + default: + return false + } +} + +// Defines values for DeploymentPhaseStatus. +const ( + DeploymentPhaseStatusFailed DeploymentPhaseStatus = "failed" + DeploymentPhaseStatusInProgress DeploymentPhaseStatus = "in_progress" + DeploymentPhaseStatusPending DeploymentPhaseStatus = "pending" + DeploymentPhaseStatusSkipped DeploymentPhaseStatus = "skipped" + DeploymentPhaseStatusSucceeded DeploymentPhaseStatus = "succeeded" +) + +// Valid indicates whether the value is a known member of the DeploymentPhaseStatus enum. +func (e DeploymentPhaseStatus) Valid() bool { + switch e { + case DeploymentPhaseStatusFailed: + return true + case DeploymentPhaseStatusInProgress: + return true + case DeploymentPhaseStatusPending: + return true + case DeploymentPhaseStatusSkipped: + return true + case DeploymentPhaseStatusSucceeded: + return true + default: + return false + } +} + +// Defines values for DeploymentProgressCurrentPhase. +const ( + DeploymentProgressCurrentPhaseBuild DeploymentProgressCurrentPhase = "build" + DeploymentProgressCurrentPhaseCheckout DeploymentProgressCurrentPhase = "checkout" + DeploymentProgressCurrentPhaseImage DeploymentProgressCurrentPhase = "image" + DeploymentProgressCurrentPhaseProvisioning DeploymentProgressCurrentPhase = "provisioning" + DeploymentProgressCurrentPhaseQueue DeploymentProgressCurrentPhase = "queue" + DeploymentProgressCurrentPhaseRollout DeploymentProgressCurrentPhase = "rollout" + DeploymentProgressCurrentPhaseVerification DeploymentProgressCurrentPhase = "verification" +) + +// Valid indicates whether the value is a known member of the DeploymentProgressCurrentPhase enum. +func (e DeploymentProgressCurrentPhase) Valid() bool { + switch e { + case DeploymentProgressCurrentPhaseBuild: + return true + case DeploymentProgressCurrentPhaseCheckout: + return true + case DeploymentProgressCurrentPhaseImage: + return true + case DeploymentProgressCurrentPhaseProvisioning: + return true + case DeploymentProgressCurrentPhaseQueue: + return true + case DeploymentProgressCurrentPhaseRollout: + return true + case DeploymentProgressCurrentPhaseVerification: + return true + default: + return false + } +} + // Defines values for EmailTemplateTemplateType. const ( EmailTemplateTemplateTypeConfirmation EmailTemplateTemplateType = "confirmation" @@ -1581,19 +1695,19 @@ func (e UploadSessionStatusResponseStatus) Valid() bool { // Defines values for VariableStatus. const ( - Active VariableStatus = "active" - Failed VariableStatus = "failed" - Provisioning VariableStatus = "provisioning" + VariableStatusActive VariableStatus = "active" + VariableStatusFailed VariableStatus = "failed" + VariableStatusProvisioning VariableStatus = "provisioning" ) // Valid indicates whether the value is a known member of the VariableStatus enum. func (e VariableStatus) Valid() bool { switch e { - case Active: + case VariableStatusActive: return true - case Failed: + case VariableStatusFailed: return true - case Provisioning: + case VariableStatusProvisioning: return true default: return false @@ -1651,6 +1765,36 @@ func (e AuthDeviceVerifyJSONBodyAction) Valid() bool { } } +// Defines values for AuthLogoutJSONBodySessionMode. +const ( + AuthLogoutJSONBodySessionModeCookie AuthLogoutJSONBodySessionMode = "cookie" +) + +// Valid indicates whether the value is a known member of the AuthLogoutJSONBodySessionMode enum. +func (e AuthLogoutJSONBodySessionMode) Valid() bool { + switch e { + case AuthLogoutJSONBodySessionModeCookie: + return true + default: + return false + } +} + +// Defines values for AuthOAuthAuthorizeParamsResponseMode. +const ( + AuthOAuthAuthorizeParamsResponseModeCode AuthOAuthAuthorizeParamsResponseMode = "code" +) + +// Valid indicates whether the value is a known member of the AuthOAuthAuthorizeParamsResponseMode enum. +func (e AuthOAuthAuthorizeParamsResponseMode) Valid() bool { + switch e { + case AuthOAuthAuthorizeParamsResponseModeCode: + return true + default: + return false + } +} + // Defines values for AuthOAuthAuthorizeParamsProvider. const ( AuthOAuthAuthorizeParamsProviderApple AuthOAuthAuthorizeParamsProvider = "apple" @@ -1741,6 +1885,21 @@ func (e AuthOAuthCallbackParamsProvider) Valid() bool { } } +// Defines values for AuthLinkOAuthProviderParamsResponseMode. +const ( + AuthLinkOAuthProviderParamsResponseModeCode AuthLinkOAuthProviderParamsResponseMode = "code" +) + +// Valid indicates whether the value is a known member of the AuthLinkOAuthProviderParamsResponseMode enum. +func (e AuthLinkOAuthProviderParamsResponseMode) Valid() bool { + switch e { + case AuthLinkOAuthProviderParamsResponseModeCode: + return true + default: + return false + } +} + // Defines values for AuthLinkOAuthProviderParamsProvider. const ( AuthLinkOAuthProviderParamsProviderApple AuthLinkOAuthProviderParamsProvider = "apple" @@ -1837,6 +1996,36 @@ func (e AuthUnlinkOAuthProviderParamsProvider) Valid() bool { } } +// Defines values for AuthRefreshJSONBodySessionMode. +const ( + AuthRefreshJSONBodySessionModeCookie AuthRefreshJSONBodySessionMode = "cookie" +) + +// Valid indicates whether the value is a known member of the AuthRefreshJSONBodySessionMode enum. +func (e AuthRefreshJSONBodySessionMode) Valid() bool { + switch e { + case AuthRefreshJSONBodySessionModeCookie: + return true + default: + return false + } +} + +// Defines values for AuthSigninJSONBodySessionMode. +const ( + Cookie AuthSigninJSONBodySessionMode = "cookie" +) + +// Valid indicates whether the value is a known member of the AuthSigninJSONBodySessionMode enum. +func (e AuthSigninJSONBodySessionMode) Valid() bool { + switch e { + case Cookie: + return true + default: + return false + } +} + // Defines values for QueryDatabaseDeleteJSONBodyFiltersOperator. const ( QueryDatabaseDeleteJSONBodyFiltersOperatorEq QueryDatabaseDeleteJSONBodyFiltersOperator = "eq" @@ -2107,6 +2296,42 @@ func (e GetDatabaseStatsParamsGranularity) Valid() bool { } } +// Defines values for ListProjectDeploymentsParamsResourceType. +const ( + ListProjectDeploymentsParamsResourceTypeFrontend ListProjectDeploymentsParamsResourceType = "frontend" + ListProjectDeploymentsParamsResourceTypeFunction ListProjectDeploymentsParamsResourceType = "function" +) + +// Valid indicates whether the value is a known member of the ListProjectDeploymentsParamsResourceType enum. +func (e ListProjectDeploymentsParamsResourceType) Valid() bool { + switch e { + case ListProjectDeploymentsParamsResourceTypeFrontend: + return true + case ListProjectDeploymentsParamsResourceTypeFunction: + return true + default: + return false + } +} + +// Defines values for SummarizeProjectDeploymentsParamsResourceType. +const ( + SummarizeProjectDeploymentsParamsResourceTypeFrontend SummarizeProjectDeploymentsParamsResourceType = "frontend" + SummarizeProjectDeploymentsParamsResourceTypeFunction SummarizeProjectDeploymentsParamsResourceType = "function" +) + +// Valid indicates whether the value is a known member of the SummarizeProjectDeploymentsParamsResourceType enum. +func (e SummarizeProjectDeploymentsParamsResourceType) Valid() bool { + switch e { + case SummarizeProjectDeploymentsParamsResourceTypeFrontend: + return true + case SummarizeProjectDeploymentsParamsResourceTypeFunction: + return true + default: + return false + } +} + // Defines values for DeleteEmailTemplateParamsType. const ( DeleteEmailTemplateParamsTypeConfirmation DeleteEmailTemplateParamsType = "confirmation" @@ -2292,25 +2517,25 @@ func (e GetOAuthConfigParamsProvider) Valid() bool { // Defines values for UpdateOAuthConfigParamsProvider. const ( - Apple UpdateOAuthConfigParamsProvider = "apple" - Device UpdateOAuthConfigParamsProvider = "device" - Github UpdateOAuthConfigParamsProvider = "github" - Google UpdateOAuthConfigParamsProvider = "google" - Microsoft UpdateOAuthConfigParamsProvider = "microsoft" + UpdateOAuthConfigParamsProviderApple UpdateOAuthConfigParamsProvider = "apple" + UpdateOAuthConfigParamsProviderDevice UpdateOAuthConfigParamsProvider = "device" + UpdateOAuthConfigParamsProviderGithub UpdateOAuthConfigParamsProvider = "github" + UpdateOAuthConfigParamsProviderGoogle UpdateOAuthConfigParamsProvider = "google" + UpdateOAuthConfigParamsProviderMicrosoft UpdateOAuthConfigParamsProvider = "microsoft" ) // Valid indicates whether the value is a known member of the UpdateOAuthConfigParamsProvider enum. func (e UpdateOAuthConfigParamsProvider) Valid() bool { switch e { - case Apple: + case UpdateOAuthConfigParamsProviderApple: return true - case Device: + case UpdateOAuthConfigParamsProviderDevice: return true - case Github: + case UpdateOAuthConfigParamsProviderGithub: return true - case Google: + case UpdateOAuthConfigParamsProviderGoogle: return true - case Microsoft: + case UpdateOAuthConfigParamsProviderMicrosoft: return true default: return false @@ -2332,6 +2557,21 @@ func (e UploadStorageObjectParamsXUploadComplete) Valid() bool { } } +// Defines values for StartGitConnectParamsProvider. +const ( + StartGitConnectParamsProviderGithub StartGitConnectParamsProvider = "github" +) + +// Valid indicates whether the value is a known member of the StartGitConnectParamsProvider enum. +func (e StartGitConnectParamsProvider) Valid() bool { + switch e { + case StartGitConnectParamsProviderGithub: + return true + default: + return false + } +} + // AnonKey defines model for AnonKey. type AnonKey struct { CreatedAt *time.Time `json:"created_at,omitempty"` @@ -2364,6 +2604,9 @@ type AuthConfig struct { // AllowedRedirectUrls Redirect allowlist used to validate post_auth_redirect_url and post_logout_redirect_url. AllowedRedirectUrls *[]string `json:"allowed_redirect_urls,omitempty"` + // AutoLinkVerifiedOauth Link a verified OAuth identity to an existing confirmed account with the same email instead of returning a conflict. Requires require_email_confirmation to be true. + AutoLinkVerifiedOauth *bool `json:"auto_link_verified_oauth,omitempty"` + // CorsAllowCredentials Allow credentials in CORS requests CorsAllowCredentials *bool `json:"cors_allow_credentials,omitempty"` CorsAllowedOrigins *[]string `json:"cors_allowed_origins,omitempty"` @@ -2380,6 +2623,9 @@ type AuthConfig struct { DeviceVerificationUrl *string `json:"device_verification_url,omitempty"` EmailConfirmationSubject *string `json:"email_confirmation_subject,omitempty"` + // EmailConfirmationTimeout Email confirmation token expiry in seconds. + EmailConfirmationTimeout *int `json:"email_confirmation_timeout,omitempty"` + // EmailEnabled Enable transactional email sending (confirmation, reset, change notifications). Must be true when require_email_confirmation is true. EmailEnabled *bool `json:"email_enabled,omitempty"` EmailFromAddress *string `json:"email_from_address,omitempty"` @@ -2407,7 +2653,12 @@ type AuthConfig struct { // MaxSessionDuration Force re-login after duration (seconds, 0=never) MaxSessionDuration *int `json:"max_session_duration,omitempty"` - MinPasswordLength *int `json:"min_password_length,omitempty"` + + // MinPasswordLength Configured minimum password length in Unicode characters. + MinPasswordLength *int `json:"min_password_length,omitempty"` + + // PasswordPolicy Effective backend-enforced password policy. + PasswordPolicy AuthPasswordPolicy `json:"password_policy"` // PasswordResetTimeout Recovery token expiry in seconds PasswordResetTimeout *int `json:"password_reset_timeout,omitempty"` @@ -2432,18 +2683,21 @@ type AuthConfig struct { RateLimitTokenRefresh *int `json:"rate_limit_token_refresh,omitempty"` // RefreshTokenLifetime Refresh token lifetime in seconds - RefreshTokenLifetime *int `json:"refresh_token_lifetime,omitempty"` - RequireLowercase *bool `json:"require_lowercase,omitempty"` - RequireNumbers *bool `json:"require_numbers,omitempty"` - RequireSpecialChars *bool `json:"require_special_chars,omitempty"` - RequireUppercase *bool `json:"require_uppercase,omitempty"` - SmtpHost *string `json:"smtp_host,omitempty"` - - // SmtpPassword SMTP password. Stored encrypted at rest (AES-256-GCM); returned decrypted only to the authenticated project owner. - SmtpPassword *string `json:"smtp_password,omitempty"` - SmtpPort *int `json:"smtp_port,omitempty"` - SmtpUseTls *bool `json:"smtp_use_tls,omitempty"` - SmtpUsername *string `json:"smtp_username,omitempty"` + RefreshTokenLifetime *int `json:"refresh_token_lifetime,omitempty"` + + // RequireEmailConfirmation Require users to confirm email before sign-in. Can only be true when email_enabled is true. + RequireEmailConfirmation *bool `json:"require_email_confirmation,omitempty"` + RequireLowercase *bool `json:"require_lowercase,omitempty"` + RequireNumbers *bool `json:"require_numbers,omitempty"` + RequireSpecialChars *bool `json:"require_special_chars,omitempty"` + RequireUppercase *bool `json:"require_uppercase,omitempty"` + SmtpHost *string `json:"smtp_host,omitempty"` + + // SmtpPasswordConfigured Whether an SMTP password is configured. The password itself is never returned. + SmtpPasswordConfigured *bool `json:"smtp_password_configured,omitempty"` + SmtpPort *int `json:"smtp_port,omitempty"` + SmtpUseTls *bool `json:"smtp_use_tls,omitempty"` + SmtpUsername *string `json:"smtp_username,omitempty"` } // AuthHostedPage defines model for AuthHostedPage. @@ -2489,6 +2743,48 @@ type AuthIdentity struct { IsPrimary bool `json:"is_primary"` } +// AuthInsightsInterval defines model for AuthInsightsInterval. +type AuthInsightsInterval string + +// AuthInsightsResponse defines model for AuthInsightsResponse. +type AuthInsightsResponse struct { + ObservedAt time.Time `json:"observed_at"` + ProjectId openapi_types.UUID `json:"project_id"` + Series []AuthInsightsSeriesPoint `json:"series"` + Summary AuthInsightsSummary `json:"summary"` + Window AuthInsightsWindow `json:"window"` +} + +// AuthInsightsSeriesPoint defines model for AuthInsightsSeriesPoint. +type AuthInsightsSeriesPoint struct { + BucketStart openapi_types.Date `json:"bucket_start"` + + // IsPartial Whether the requested window or observation time clips this bucket. + IsPartial bool `json:"is_partial"` + + // Signins Successful session creations during the bucket. + Signins int64 `json:"signins"` + + // Signups Accounts created during the bucket. + Signups int64 `json:"signups"` +} + +// AuthInsightsSummary defines model for AuthInsightsSummary. +type AuthInsightsSummary struct { + // ActiveUsers30d Users with a successful session creation or refresh in the trailing 30 days since activity collection was deployed. + ActiveUsers30d int64 `json:"active_users_30d"` + + // TotalUsers Current auth-user count, matching the auth-user list total. + TotalUsers int64 `json:"total_users"` +} + +// AuthInsightsWindow defines model for AuthInsightsWindow. +type AuthInsightsWindow struct { + From openapi_types.Date `json:"from"` + Interval AuthInsightsInterval `json:"interval"` + To openapi_types.Date `json:"to"` +} + // AuthMethodSummary A single sign-in method the account owns (password, an OAuth provider, or an // active anonymous method). `is_primary` reflects the account's primary_method_id. type AuthMethodSummary struct { @@ -2523,6 +2819,33 @@ type AuthMethodsResponse struct { Methods []AuthMethodSummary `json:"methods"` } +// AuthPasswordPolicy Effective backend-enforced password policy. +type AuthPasswordPolicy struct { + // CompromisedPasswordsRejected Whether common and known-compromised passwords are rejected by the backend. + CompromisedPasswordsRejected bool `json:"compromised_passwords_rejected"` + + // EffectiveMinLength Effective minimum password length in Unicode characters. + EffectiveMinLength int `json:"effective_min_length"` + + // MaxLength Maximum password length in Unicode characters. + MaxLength int `json:"max_length"` + + // MinConfigurableLength Lowest minimum password length accepted by the auth configuration endpoint. + MinConfigurableLength int `json:"min_configurable_length"` + + // RequireLowercase Whether passwords must contain an ASCII lowercase letter (a-z). + RequireLowercase bool `json:"require_lowercase"` + + // RequireNumbers Whether passwords must contain an ASCII digit (0-9). + RequireNumbers bool `json:"require_numbers"` + + // RequireSpecialChars Whether passwords must contain one of the backend-supported special characters. + RequireSpecialChars bool `json:"require_special_chars"` + + // RequireUppercase Whether passwords must contain an ASCII uppercase letter (A-Z). + RequireUppercase bool `json:"require_uppercase"` +} + // AuthSession An authentication session for a user type AuthSession struct { CreatedAt *time.Time `json:"created_at,omitempty"` @@ -2587,8 +2910,9 @@ type AuthTokenResponse struct { // ExpiresIn Access token lifetime in seconds ExpiresIn int `json:"expires_in"` - // RefreshToken Long-lived token for getting new access tokens - RefreshToken string `json:"refresh_token"` + // RefreshToken Long-lived token for getting new access tokens. Omitted when the + // request uses eligible HttpOnly cookie session storage. + RefreshToken string `json:"refresh_token,omitempty"` TokenType string `json:"token_type"` User AuthUser `json:"user"` } @@ -2659,6 +2983,27 @@ type CompleteUploadSessionResponse struct { Object *StorageObject `json:"object,omitempty"` } +// ConnectProjectGitRequest defines model for ConnectProjectGitRequest. +type ConnectProjectGitRequest struct { + // ConnectionId The caller's user_git_connections row (see /user/git/connections). + ConnectionId openapi_types.UUID `json:"connection_id"` + InstallationId int64 `json:"installation_id"` + + // ProductionBranch Deprecated. The deployment branch always follows the repository's GitHub default branch; when given it must equal that default branch. New callers omit it. + // Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set + ProductionBranch *string `json:"production_branch,omitempty"` + + // RepoFullName Deprecated selector kept for a compatibility window; prefer repository_id. Either repository_id or repo_full_name is required. + // Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set + RepoFullName *string `json:"repo_full_name,omitempty"` + + // RepositoryId Stable GitHub repository id (repository.id), the preferred selector. Either repository_id or repo_full_name is required; when both are given they must identify the same live repository. + RepositoryId *int64 `json:"repository_id,omitempty"` + + // RootDirectory Monorepo subdirectory the project builds from. Omit for the repo root. + RootDirectory *string `json:"root_directory,omitempty"` +} + // CreateDatabaseRequest Create a new PostgreSQL database. Volcano automatically sets up: // - Auth helpers (auth.uid(), auth.email(), auth.role()) // - Database roles (anon for unauthenticated, authenticated for signed-in users) @@ -2860,8 +3205,15 @@ type Database struct { Region *string `json:"region,omitempty"` // Status Database provisioning status - Status DatabaseStatus `json:"status"` - UpdatedAt time.Time `json:"updated_at"` + Status DatabaseStatus `json:"status"` + + // StorageBytes Latest observed on-disk size from `pg_database_size`, in bytes. This + // point-in-time gauge may be absent until the database has been sampled. + // Summing the latest samples for every database in a project produces + // the project's "Database Storage (Bytes)" usage gauge. Populated on + // database list responses; single-database responses omit it. + StorageBytes *int64 `json:"storage_bytes,omitempty"` + UpdatedAt time.Time `json:"updated_at"` } // DatabaseDatabaseType Database size tier that determines available RAM and scaling limits. @@ -2930,6 +3282,34 @@ type DatabaseStats struct { // DatabaseStatsGranularity Granularity of the aggregated metrics type DatabaseStatsGranularity string +// DeploymentPhase Timing and outcome for one normalized deployment pipeline phase. +type DeploymentPhase struct { + CompletedAt *time.Time `json:"completed_at,omitempty"` + DurationSeconds *int64 `json:"duration_seconds,omitempty"` + Name DeploymentPhaseName `json:"name"` + StartedAt *time.Time `json:"started_at,omitempty"` + Status DeploymentPhaseStatus `json:"status"` +} + +// DeploymentPhaseName defines model for DeploymentPhase.Name. +type DeploymentPhaseName string + +// DeploymentPhaseStatus defines model for DeploymentPhase.Status. +type DeploymentPhaseStatus string + +// DeploymentProgress Normalized live progress derived from the deployment workflow and build phases. +type DeploymentProgress struct { + CompletedAt *time.Time `json:"completed_at,omitempty"` + CurrentPhase *DeploymentProgressCurrentPhase `json:"current_phase,omitempty"` + ElapsedSeconds int64 `json:"elapsed_seconds"` + Phases []DeploymentPhase `json:"phases"` + StartedAt time.Time `json:"started_at"` + UpdatedAt time.Time `json:"updated_at"` +} + +// DeploymentProgressCurrentPhase defines model for DeploymentProgress.CurrentPhase. +type DeploymentProgressCurrentPhase string + // DeviceAuthorizationResponse defines model for DeviceAuthorizationResponse. type DeviceAuthorizationResponse struct { DeviceCode string `json:"device_code"` @@ -2971,7 +3351,9 @@ type EmailTemplateTemplateType string // Error defines model for Error. type Error struct { - Error string `json:"error"` + // Code Stable machine-readable error code when a specific recovery path is available. + Code *string `json:"code,omitempty"` + Error string `json:"error"` } // Frontend defines model for Frontend. @@ -2999,10 +3381,18 @@ type Frontend struct { ProjectId openapi_types.UUID `json:"project_id"` // ProvisioningStartedAt Timestamp when the current provisioning phase started - ProvisioningStartedAt *time.Time `json:"provisioning_started_at,omitempty"` - SiteUrl *string `json:"site_url,omitempty"` - Status FrontendStatus `json:"status"` - UpdatedAt time.Time `json:"updated_at"` + ProvisioningStartedAt *time.Time `json:"provisioning_started_at,omitempty"` + SiteUrl *string `json:"site_url,omitempty"` + + // Status Frontend lifecycle status. `degraded` means the regional runtime remains + // available but edge synchronization exhausted its immediate retries; Volcano + // retries edge recovery without rebuilding the frontend, and stops once a new + // deployment is queued or the retry budget runs out, leaving the frontend + // `degraded` until the next redeploy. A redeploy that fails over a serving + // frontend stays `active` on the previous deployment, so `failed` means no + // deployment is serving. + Status FrontendStatus `json:"status"` + UpdatedAt time.Time `json:"updated_at"` } // FrontendCustomDomainStatus Current custom domain lifecycle status @@ -3011,7 +3401,13 @@ type FrontendCustomDomainStatus string // FrontendFramework defines model for Frontend.Framework. type FrontendFramework string -// FrontendStatus defines model for Frontend.Status. +// FrontendStatus Frontend lifecycle status. `degraded` means the regional runtime remains +// available but edge synchronization exhausted its immediate retries; Volcano +// retries edge recovery without rebuilding the frontend, and stops once a new +// deployment is queued or the retry budget runs out, leaving the frontend +// `degraded` until the next redeploy. A redeploy that fails over a serving +// frontend stays `active` on the previous deployment, so `failed` means no +// deployment is serving. type FrontendStatus string // FrontendCustomDomainResponse defines model for FrontendCustomDomainResponse. @@ -3061,7 +3457,6 @@ type FrontendDeployment struct { ArtifactVersion *string `json:"artifact_version,omitempty"` CloudformationStackId *string `json:"cloudformation_stack_id,omitempty"` CloudformationStackUrl *string `json:"cloudformation_stack_url,omitempty"` - CloudwatchLogGroup *string `json:"cloudwatch_log_group,omitempty"` // CodebuildBuildCount Number of completed CodeBuild builds included in codebuild_duration_seconds. CodebuildBuildCount *int `json:"codebuild_build_count,omitempty"` @@ -3074,16 +3469,25 @@ type FrontendDeployment struct { FrontendId openapi_types.UUID `json:"frontend_id"` Id openapi_types.UUID `json:"id"` Operation FrontendDeploymentOperation `json:"operation"` - ProjectId openapi_types.UUID `json:"project_id"` - SiteUrl *string `json:"site_url,omitempty"` - Status FrontendDeploymentStatus `json:"status"` - UpdatedAt time.Time `json:"updated_at"` + + // Progress Normalized live progress derived from the deployment workflow and build phases. + Progress *DeploymentProgress `json:"progress,omitempty"` + ProjectId openapi_types.UUID `json:"project_id"` + SiteUrl *string `json:"site_url,omitempty"` + + // Status Deployment lifecycle status. A `degraded` redeploy remains available while + // edge-only recovery is retried. A `failed` redeploy is recorded here while the + // frontend keeps serving its previous deployment. + Status FrontendDeploymentStatus `json:"status"` + UpdatedAt time.Time `json:"updated_at"` } // FrontendDeploymentOperation defines model for FrontendDeployment.Operation. type FrontendDeploymentOperation string -// FrontendDeploymentStatus defines model for FrontendDeployment.Status. +// FrontendDeploymentStatus Deployment lifecycle status. A `degraded` redeploy remains available while +// edge-only recovery is retried. A `failed` redeploy is recorded here while the +// frontend keeps serving its previous deployment. type FrontendDeploymentStatus string // FrontendDomainRoutingRecord defines model for FrontendDomainRoutingRecord. @@ -3194,19 +3598,18 @@ type FunctionDeployment struct { // CodebuildDurationSeconds Total CodeBuild build duration recorded for this deployment, in seconds. CodebuildDurationSeconds *int64 `json:"codebuild_duration_seconds,omitempty"` - CompileLogGroup *string `json:"compile_log_group,omitempty"` - CompileLogStream *string `json:"compile_log_stream,omitempty"` CompletedAt *time.Time `json:"completed_at,omitempty"` CreatedAt time.Time `json:"created_at"` ErrorMessage *string `json:"error_message,omitempty"` FunctionId openapi_types.UUID `json:"function_id"` Id openapi_types.UUID `json:"id"` Operation FunctionDeploymentOperation `json:"operation"` - ProjectId openapi_types.UUID `json:"project_id"` - PublishLogGroup *string `json:"publish_log_group,omitempty"` - PublishLogStream *string `json:"publish_log_stream,omitempty"` - Status FunctionDeploymentStatus `json:"status"` - UpdatedAt time.Time `json:"updated_at"` + + // Progress Normalized live progress derived from the deployment workflow and build phases. + Progress *DeploymentProgress `json:"progress,omitempty"` + ProjectId openapi_types.UUID `json:"project_id"` + Status FunctionDeploymentStatus `json:"status"` + UpdatedAt time.Time `json:"updated_at"` } // FunctionDeploymentOperation defines model for FunctionDeployment.Operation. @@ -3284,22 +3687,25 @@ type FunctionRuntimesResponse struct { // FunctionScheduler defines model for FunctionScheduler. type FunctionScheduler struct { - CreatedAt *time.Time `json:"created_at,omitempty"` - CronExpression *string `json:"cron_expression,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - FunctionId *openapi_types.UUID `json:"function_id,omitempty"` - Id *openapi_types.UUID `json:"id,omitempty"` - LastCompletedAt *time.Time `json:"last_completed_at,omitempty"` - LastError *string `json:"last_error,omitempty"` - LastStartedAt *time.Time `json:"last_started_at,omitempty"` - Name *string `json:"name,omitempty"` - NextRunAt *time.Time `json:"next_run_at,omitempty"` - Payload *map[string]interface{} `json:"payload,omitempty"` - ProjectId *openapi_types.UUID `json:"project_id,omitempty"` - Regions *[]string `json:"regions,omitempty"` - RegionsExplicit *bool `json:"regions_explicit,omitempty"` - ScheduleKind *FunctionSchedulerScheduleKind `json:"schedule_kind,omitempty"` - UpdatedAt *time.Time `json:"updated_at,omitempty"` + CreatedAt *time.Time `json:"created_at,omitempty"` + CronExpression *string `json:"cron_expression,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + FunctionId *openapi_types.UUID `json:"function_id,omitempty"` + Id *openapi_types.UUID `json:"id,omitempty"` + LastCompletedAt *time.Time `json:"last_completed_at,omitempty"` + LastError *string `json:"last_error,omitempty"` + LastStartedAt *time.Time `json:"last_started_at,omitempty"` + Name *string `json:"name,omitempty"` + NextRunAt *time.Time `json:"next_run_at,omitempty"` + Payload *map[string]interface{} `json:"payload,omitempty"` + ProjectId *openapi_types.UUID `json:"project_id,omitempty"` + Regions *[]string `json:"regions,omitempty"` + RegionsExplicit *bool `json:"regions_explicit,omitempty"` + + // RunCount Total number of times this scheduler has executed. 0 for a scheduler that has never run. + RunCount *int64 `json:"run_count,omitempty"` + ScheduleKind *FunctionSchedulerScheduleKind `json:"schedule_kind,omitempty"` + UpdatedAt *time.Time `json:"updated_at,omitempty"` } // FunctionSchedulerScheduleKind defines model for FunctionScheduler.ScheduleKind. @@ -3310,8 +3716,64 @@ type FunctionSchedulerListResponse struct { Data []FunctionScheduler `json:"data"` HasMore bool `json:"has_more"` Limit int `json:"limit"` - Page int `json:"page"` - Total int `json:"total"` + + // NextCursor Opaque cursor for the next page (cursor pagination only; present if has_more is true) + NextCursor *string `json:"next_cursor,omitempty"` + Page int `json:"page"` + + // PrevCursor Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + Total int `json:"total"` +} + +// GitConnectStartResponse defines model for GitConnectStartResponse. +type GitConnectStartResponse struct { + AuthorizationUrl string `json:"authorization_url"` +} + +// GitConnection defines model for GitConnection. +type GitConnection struct { + CreatedAt time.Time `json:"created_at"` + Id openapi_types.UUID `json:"id"` + LastAuthenticatedAt time.Time `json:"last_authenticated_at"` + Provider string `json:"provider"` + ProviderLogin string `json:"provider_login"` + ProviderUserId string `json:"provider_user_id"` + Status string `json:"status"` + UpdatedAt time.Time `json:"updated_at"` +} + +// GitConnectionsResponse defines model for GitConnectionsResponse. +type GitConnectionsResponse struct { + Connections []GitConnection `json:"connections"` +} + +// GitInstallation defines model for GitInstallation. +type GitInstallation struct { + AccountLogin string `json:"account_login"` + AccountType string `json:"account_type"` + Id int64 `json:"id"` + RepositorySelection string `json:"repository_selection"` +} + +// GitInstallationsResponse defines model for GitInstallationsResponse. +type GitInstallationsResponse struct { + Installations []GitInstallation `json:"installations"` +} + +// GitRepositoriesResponse defines model for GitRepositoriesResponse. +type GitRepositoriesResponse struct { + Repositories []GitRepository `json:"repositories"` +} + +// GitRepository defines model for GitRepository. +type GitRepository struct { + DefaultBranch string `json:"default_branch"` + FullName string `json:"full_name"` + + // Id Stable GitHub repository id (repository.id), unchanged by renames. + Id int64 `json:"id"` + Private bool `json:"private"` } // HostedAuthPageType defines model for HostedAuthPageType. @@ -3374,15 +3836,9 @@ type LogActivityRequest struct { // EndTime End time. EndTime *time.Time `json:"end_time,omitempty"` - // Levels Canonical lowercase log levels to filter by. If omitted, empty, or all levels are selected, no level filter is applied. - Levels *[]LiveLogLevel `json:"levels,omitempty"` - - // Q Optional free-text search query for log messages. + // Q Optional activity query. Supports quoted text, implicit AND, AND/OR/NOT, parentheses, and fields such as `level`, `region`, `invocation.id`, `resource.id`, `resource.name`, `function`, `frontend`, `database`, and `body`. Q *string `json:"q,omitempty"` - // Regions Regions to filter by, for example `["us-east-1", "eu-west-1"]`. If omitted or empty, aggregate all deployed regions. - Regions *[]string `json:"regions,omitempty"` - // Resource Resource selectors for project log reads. Resource LogRequestResource `json:"resource"` @@ -3428,7 +3884,7 @@ type LogDeploymentRequestSelector struct { Ids *[]openapi_types.UUID `json:"ids,omitempty"` } -// LogEvent Normalized historical log event returned by paginated log APIs. +// LogEvent Historical log event returned by log APIs. type LogEvent struct { // Body Application log value. JSON arguments retain their JSON type. Strings containing a serialized JSON object or array are normalized to that object or array; all other strings remain strings. Body *LogEvent_Body `json:"body"` @@ -3580,18 +4036,12 @@ type LogSearchRequest struct { // EndTime End time. EndTime *time.Time `json:"end_time,omitempty"` - // Levels Canonical lowercase log levels to filter by. If omitted, empty, or all levels are selected, no level filter is applied. - Levels *[]LiveLogLevel `json:"levels,omitempty"` - // Limit Maximum number of records to return. Limit *int `json:"limit,omitempty"` - // Q Optional free-text search query for log messages. + // Q Optional log query. Supports quoted text, implicit AND, AND/OR/NOT, parentheses, and fields such as `level`, `region`, `invocation.id`, `resource.id`, `resource.name`, `function`, `frontend`, `database`, and `body`. Q *string `json:"q,omitempty"` - // Regions Regions to filter by, for example `["us-east-1", "eu-west-1"]`. If omitted or empty, search all deployed regions. - Regions *[]string `json:"regions,omitempty"` - // Resource Resource selectors for project log reads. Resource LogRequestResource `json:"resource"` @@ -3614,16 +4064,13 @@ type LogSearchResponse struct { NextCursor *string `json:"next_cursor,omitempty"` } -// LogStreamRequest Stream request for live project logs. Text search, pagination cursors, and fixed end times are not supported. +// LogStreamRequest Stream request for live project logs. Pagination cursors and fixed end times are not supported. type LogStreamRequest struct { - // Levels Canonical lowercase log levels to filter by. If omitted, empty, or all levels are selected, no level filter is applied. - Levels *[]LiveLogLevel `json:"levels,omitempty"` - // Limit Maximum number of records to deliver on connect or reconnect before following new events. Limit *int `json:"limit,omitempty"` - // Regions Regions to filter by, for example `["us-east-1", "eu-west-1"]`. If omitted or empty, stream all deployed regions. - Regions *[]string `json:"regions,omitempty"` + // Q Optional log query using the same syntax as search and activity requests. + Q *string `json:"q,omitempty"` // Resource Resource selectors for project log reads. Resource LogRequestResource `json:"resource"` @@ -3648,7 +4095,8 @@ type MetricUsageData struct { // "Bandwidth Total (Bytes)", or "Database Storage (Bytes)"). Byte-based metrics are // reported in bytes. "Bandwidth Total (Bytes)" is derived (ingress + egress) and // is not billed separately. "Database Storage (Bytes)" is a current observed gauge, - // not a cumulative counter. + // not a cumulative counter. It is the sum of the latest `pg_database_size` samples + // exposed as `storage_bytes` by the project's database list. Metric string `json:"metric"` // Total Total usage for the current usage month @@ -3712,9 +4160,15 @@ type PaginatedDatabases struct { // Next URL path to next page (only present if has_more is true) Next *string `json:"next,omitempty"` + // NextCursor Opaque cursor for the next page (cursor pagination only; present if has_more is true) + NextCursor *string `json:"next_cursor,omitempty"` + // Page Current page number (1-indexed) Page int `json:"page"` + // PrevCursor Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + // Total Total number of items across all pages Total int `json:"total"` } @@ -3749,12 +4203,18 @@ type PaginatedFrontends struct { // Limit Number of items per page Limit int `json:"limit"` - // Next URL path to next page (only present if has_more is true) + // Next URL path to next page (offset pagination only; present if has_more is true) Next *string `json:"next,omitempty"` + // NextCursor Opaque cursor for the next page (cursor pagination only; present if has_more is true) + NextCursor *string `json:"next_cursor,omitempty"` + // Page Current page number (1-indexed) Page int `json:"page"` + // PrevCursor Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + // Total Total number of items across all pages Total int `json:"total"` } @@ -3792,9 +4252,15 @@ type PaginatedFunctions struct { // Next URL path to next page (only present if has_more is true) Next *string `json:"next,omitempty"` + // NextCursor Opaque cursor for the next page (cursor pagination only; present if has_more is true) + NextCursor *string `json:"next_cursor,omitempty"` + // Page Current page number (1-indexed) Page int `json:"page"` + // PrevCursor Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + // Total Total number of items across all pages Total int `json:"total"` } @@ -3829,12 +4295,18 @@ type PaginatedProjectDeployments struct { // Limit Number of items per page Limit int `json:"limit"` - // Next URL path to next page (only present if has_more is true) + // Next URL path to next page (offset pagination only; present if has_more is true) Next *string `json:"next,omitempty"` + // NextCursor Opaque cursor for the next page (cursor pagination only; present if has_more is true) + NextCursor *string `json:"next_cursor,omitempty"` + // Page Current page number (1-indexed) Page int `json:"page"` + // PrevCursor Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + // Total Total number of items across all pages Total int `json:"total"` } @@ -3880,16 +4352,42 @@ type PaginatedServiceKeys struct { // Limit Number of items per page Limit int `json:"limit"` - // Next URL path to next page (only present if has_more is true) + // Next URL path to next page (offset pagination only; present if has_more is true) Next *string `json:"next,omitempty"` + // NextCursor Opaque cursor for the next page (cursor pagination only; present if has_more is true) + NextCursor *string `json:"next_cursor,omitempty"` + // Page Current page number (1-indexed) Page int `json:"page"` + // PrevCursor Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + // Total Total number of items across all pages Total int `json:"total"` } +// PaginatedStorageBuckets Cursor-paginated storage buckets (returned only when cursor pagination is requested). +type PaginatedStorageBuckets struct { + Data []StorageBucket `json:"data"` + + // HasMore Whether a next page exists + HasMore bool `json:"has_more"` + + // Limit Number of items per page + Limit int `json:"limit"` + + // NextCursor Opaque cursor for the next page (present if has_more is true) + NextCursor *string `json:"next_cursor,omitempty"` + + // PrevCursor Opaque cursor for the previous page (present when a previous page exists). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + + // Total Total number of items matching the query + Total *int `json:"total,omitempty"` +} + // PaginatedVariables defines model for PaginatedVariables. type PaginatedVariables struct { Data []Variable `json:"data"` @@ -3903,9 +4401,15 @@ type PaginatedVariables struct { // Next URL path to next page (only present if has_more is true) Next *string `json:"next,omitempty"` + // NextCursor Opaque cursor for the next page (cursor pagination only; present if has_more is true) + NextCursor *string `json:"next_cursor,omitempty"` + // Page Current page number (1-indexed) Page int `json:"page"` + // PrevCursor Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + // Total Total number of items across all pages Total int `json:"total"` } @@ -4410,7 +4914,10 @@ type ProjectDeployment struct { ErrorMessage *string `json:"error_message,omitempty"` Id openapi_types.UUID `json:"id"` Operation ProjectDeploymentOperation `json:"operation"` - ProjectId openapi_types.UUID `json:"project_id"` + + // Progress Normalized live progress derived from the deployment workflow and build phases. + Progress *DeploymentProgress `json:"progress,omitempty"` + ProjectId openapi_types.UUID `json:"project_id"` // Resource The resource this deployment belongs to. Resource ProjectDeploymentResource `json:"resource"` @@ -4434,6 +4941,27 @@ type ProjectDeploymentResource struct { // ProjectDeploymentResourceType defines model for ProjectDeploymentResource.Type. type ProjectDeploymentResourceType string +// ProjectDeploymentSummary Aggregate deployment statistics for one resource pipeline. +type ProjectDeploymentSummary struct { + // CanceledCount Superseded attempts, excluded from success rate and duration. + CanceledCount int `json:"canceled_count"` + + // DeploymentCount All deployment attempts matching the filters. + DeploymentCount int `json:"deployment_count"` + + // FailedCount Attempts that reached failed or degraded. + FailedCount int `json:"failed_count"` + + // MedianBuildDurationSeconds Median CodeBuild duration across eligible completed attempts. + MedianBuildDurationSeconds *float64 `json:"median_build_duration_seconds"` + + // SuccessRate Successful attempts divided by successful plus failed attempts. + SuccessRate *float64 `json:"success_rate"` + + // SuccessfulCount Attempts that reached active or deleted. + SuccessfulCount int `json:"successful_count"` +} + // ProjectFrontendCustomDomain defines model for ProjectFrontendCustomDomain. type ProjectFrontendCustomDomain struct { CreatedAt time.Time `json:"created_at"` @@ -4463,6 +4991,35 @@ type ProjectFrontendCustomDomainTlsMode string // ProjectFrontendCustomDomainVerificationStatus defines model for ProjectFrontendCustomDomain.VerificationStatus. type ProjectFrontendCustomDomainVerificationStatus string +// ProjectGitConnection defines model for ProjectGitConnection. +type ProjectGitConnection struct { + // ProductionBranch The repository's GitHub default branch, cached at connect time and used as the deployment target. + ProductionBranch string `json:"production_branch"` + RepoFullName string `json:"repo_full_name"` + + // RepoId Stable GitHub repository id (repository.id), the authoritative binding. + RepoId int64 `json:"repo_id"` + RepoInstallationId int64 `json:"repo_installation_id"` + RootDirectory string `json:"root_directory"` + UpdatedAt time.Time `json:"updated_at"` +} + +// ProjectGitDeploySettings A project's GitHub auto-deploy settings: what a push to the connected repo's production branch deploys. All settings are default-off. +type ProjectGitDeploySettings struct { + // AutoDeployEnabled Whether a production-branch push triggers a deployment. + AutoDeployEnabled bool `json:"auto_deploy_enabled"` + + // DeployFunctions Whether the repo's functions are deployed on push. + DeployFunctions bool `json:"deploy_functions"` + + // FrontendAppRoot App root (subdirectory) the frontend builds from. Omitted for the repo root. + FrontendAppRoot *string `json:"frontend_app_root,omitempty"` + + // FrontendName Name of the frontend to build and deploy on push. Omitted when no frontend is deployed. Resolved at deploy time; need not exist yet. + FrontendName *string `json:"frontend_name,omitempty"` + UpdatedAt time.Time `json:"updated_at"` +} + // ProjectHealthCategory defines model for ProjectHealthCategory. type ProjectHealthCategory string @@ -4518,6 +5075,42 @@ type ProjectHealthScope struct { // ProjectHealthStatus defines model for ProjectHealthStatus. type ProjectHealthStatus string +// ProjectLockLease defines model for ProjectLockLease. +type ProjectLockLease struct { + // ExpiresAt Advisory lease expiry timestamp in UTC. + ExpiresAt time.Time `json:"expires_at"` + + // FencingToken Monotonically increasing token for this acquisition. It rises whenever the + // lock changes hands and stays the same across renewals of one lease. Pass it + // to the resource you are protecting and reject any write carrying a token + // lower than the highest already seen; that is what stops a displaced holder + // from writing after its lease lapsed. + FencingToken int64 `json:"fencing_token"` +} + +// ProjectLockLeaseRequest defines model for ProjectLockLeaseRequest. +type ProjectLockLeaseRequest struct { + // TtlSeconds Lease duration in seconds, from 5 seconds through 90 days, measured + // from when the request is served. Renew before it elapses. A renewal + // sets the new expiry outright, so a shorter TTL shortens the lease. + // Renewals cannot extend an acquisition beyond its absolute 90-day + // deadline. + TtlSeconds int `json:"ttl_seconds"` +} + +// ProjectLockState defines model for ProjectLockState. +type ProjectLockState struct { + // ExpiresAt Advisory lease expiry timestamp in UTC. Present only when held. + ExpiresAt *time.Time `json:"expires_at,omitempty"` + + // FencingToken Current holder's fencing token. Present only when held. + FencingToken *int64 `json:"fencing_token,omitempty"` + + // Held Whether the lock is unavailable right now. False means an acquire would + // succeed. It remains true during the brief grace window after expiry. + Held bool `json:"held"` +} + // ProjectMetricsDataStatus defines model for ProjectMetricsDataStatus. type ProjectMetricsDataStatus string @@ -4703,7 +5296,7 @@ type ServiceKey struct { // Permissions Operations this key may perform. ["*"] grants full admin access // (default for keys created without an explicit scope). Scoped keys - // list specific permissions, e.g. ["functions.invoke"]. + // list specific permissions, e.g. ["functions.invoke", "locks.manage"]. Permissions []string `json:"permissions"` ProjectId *openapi_types.UUID `json:"project_id,omitempty"` UpdatedAt *time.Time `json:"updated_at,omitempty"` @@ -4908,9 +5501,12 @@ type UpdateAuthConfigRequest struct { AllowPasswordReset *bool `json:"allow_password_reset,omitempty"` // AllowedRedirectUrls Redirect allowlist. Every entry must be a valid http/https URL. - AllowedRedirectUrls *[]string `json:"allowed_redirect_urls,omitempty"` - CorsAllowCredentials *bool `json:"cors_allow_credentials,omitempty"` - CorsMaxAge *int `json:"cors_max_age,omitempty"` + AllowedRedirectUrls *[]string `json:"allowed_redirect_urls,omitempty"` + + // AutoLinkVerifiedOauth Link a verified OAuth identity to an existing confirmed account with the same email instead of returning a conflict. Requires require_email_confirmation to be true. + AutoLinkVerifiedOauth *bool `json:"auto_link_verified_oauth,omitempty"` + CorsAllowCredentials *bool `json:"cors_allow_credentials,omitempty"` + CorsMaxAge *int `json:"cors_max_age,omitempty"` // DeviceVerificationUrl Optional custom device-authorization verification page. Must be a // valid http/https URL (not tied to allowed_redirect_urls). When set, @@ -4962,7 +5558,7 @@ type UpdateAuthConfigRequest struct { RequireUppercase *bool `json:"require_uppercase,omitempty"` SmtpHost *string `json:"smtp_host,omitempty"` - // SmtpPassword SMTP password (sensitive). Encrypted at rest (AES-256-GCM) when stored. + // SmtpPassword Replacement SMTP password. Omit this field to preserve the configured password. The value is encrypted at rest and never returned. SmtpPassword *string `json:"smtp_password,omitempty"` SmtpPort *int `json:"smtp_port,omitempty"` SmtpUseTls *bool `json:"smtp_use_tls,omitempty"` @@ -5023,6 +5619,18 @@ type UpdateOAuthConfigRequest struct { Scopes *[]string `json:"scopes,omitempty"` } +// UpdateProjectGitDeploySettingsRequest Full replace of a project's Git auto-deploy settings. +type UpdateProjectGitDeploySettingsRequest struct { + AutoDeployEnabled bool `json:"auto_deploy_enabled"` + DeployFunctions bool `json:"deploy_functions"` + + // FrontendAppRoot App root the frontend builds from. Requires frontend_name; omit for the repo root. + FrontendAppRoot *string `json:"frontend_app_root,omitempty"` + + // FrontendName Frontend to deploy on push. Omit or empty to deploy no frontend. + FrontendName *string `json:"frontend_name,omitempty"` +} + // UpdateProjectRequest Update mutable project fields (name and/or region policy) type UpdateProjectRequest struct { // AllRegions If omitted and `selected_regions` is also omitted, existing region policy is preserved. @@ -5150,12 +5758,18 @@ type VariableStatus string // BucketName defines model for BucketName. type BucketName = string +// Cursor defines model for Cursor. +type Cursor = string + // DatabaseName defines model for DatabaseName. type DatabaseName = string // DeploymentId defines model for DeploymentId. type DeploymentId = openapi_types.UUID +// EndingBefore defines model for EndingBefore. +type EndingBefore = string + // FrontendId defines model for FrontendId. type FrontendId = openapi_types.UUID @@ -5165,6 +5779,18 @@ type FunctionId = openapi_types.UUID // Limit defines model for Limit. type Limit = int +// LockKey defines model for LockKey. +type LockKey = string + +// LockRequestId defines model for LockRequestId. +type LockRequestId = openapi_types.UUID + +// LockToken defines model for LockToken. +type LockToken = openapi_types.UUID + +// Offset defines model for Offset. +type Offset = int + // Page defines model for Page. type Page = int @@ -5174,6 +5800,9 @@ type ProjectId = openapi_types.UUID // SchedulerId defines model for SchedulerId. type SchedulerId = openapi_types.UUID +// Search defines model for Search. +type Search = string + // VariableName defines model for VariableName. type VariableName = string @@ -5236,7 +5865,17 @@ type AuthForgotPasswordJSONBody struct { // AuthLogoutJSONBody defines parameters for AuthLogout. type AuthLogoutJSONBody struct { - RefreshToken string `json:"refresh_token"` + RefreshToken *string `json:"refresh_token,omitempty"` + SessionMode *AuthLogoutJSONBodySessionMode `json:"session_mode,omitempty"` +} + +// AuthLogoutJSONBodySessionMode defines parameters for AuthLogout. +type AuthLogoutJSONBodySessionMode string + +// AuthOAuthExchangeJSONBody defines parameters for AuthOAuthExchange. +type AuthOAuthExchangeJSONBody struct { + Code string `json:"code"` + RedirectUrl string `json:"redirect_url"` } // AuthOAuthAuthorizeParams defines parameters for AuthOAuthAuthorize. @@ -5244,14 +5883,27 @@ type AuthOAuthAuthorizeParams struct { // AnonKey Project anon key (required - identifies the project) AnonKey string `form:"anon_key" json:"anon_key"` - // RedirectUrl URL to redirect to after the OAuth flow (optional). The session - // tokens are appended to this URL's fragment on success. If the URL - // carries a `vh_state` query parameter (the client SDK's one-time - // nonce), it is moved into the fragment as `state` so the SDK can bind - // the returned session to the flow it initiated (login-CSRF defense). + // RedirectUrl URL to redirect to after the OAuth flow (optional). Must exactly + // match an entry in the project's `allowed_redirect_urls`, including + // its query string, or be the project's own managed hosted-auth page + // URL. RedirectUrl *string `form:"redirect_url,omitempty" json:"redirect_url,omitempty"` + + // ClientState Optional application nonce. It is stored with the server-generated + // provider state and echoed to redirect_url as `state`. + ClientState *string `form:"client_state,omitempty" json:"client_state,omitempty"` + + // ResponseMode Set to `code` to receive a short-lived authorization code at + // redirect_url, then use POST /auth/oauth/exchange to obtain the + // session. `redirect_url` is required in this mode. When omitted, the + // established session-fragment response is retained for compatibility + // with existing clients. + ResponseMode *AuthOAuthAuthorizeParamsResponseMode `form:"response_mode,omitempty" json:"response_mode,omitempty"` } +// AuthOAuthAuthorizeParamsResponseMode defines parameters for AuthOAuthAuthorize. +type AuthOAuthAuthorizeParamsResponseMode string + // AuthOAuthAuthorizeParamsProvider defines parameters for AuthOAuthAuthorize. type AuthOAuthAuthorizeParamsProvider string @@ -5285,6 +5937,25 @@ type AuthOAuthCallbackParams struct { // AuthOAuthCallbackParamsProvider defines parameters for AuthOAuthCallback. type AuthOAuthCallbackParamsProvider string +// AuthLinkOAuthProviderParams defines parameters for AuthLinkOAuthProvider. +type AuthLinkOAuthProviderParams struct { + // RedirectUrl URL to redirect to after linking completes (optional). Same + // allowed_redirect_urls requirement as GET /auth/oauth/{provider}/authorize. + RedirectUrl *string `form:"redirect_url,omitempty" json:"redirect_url,omitempty"` + + // ClientState Optional application nonce echoed to redirect_url as `state`. + ClientState *string `form:"client_state,omitempty" json:"client_state,omitempty"` + + // ResponseMode Set to `code` to receive a short-lived authorization code at + // redirect_url. `redirect_url` is required in this mode. When + // omitted, the established session-fragment response is retained for + // compatibility with existing clients. + ResponseMode *AuthLinkOAuthProviderParamsResponseMode `form:"response_mode,omitempty" json:"response_mode,omitempty"` +} + +// AuthLinkOAuthProviderParamsResponseMode defines parameters for AuthLinkOAuthProvider. +type AuthLinkOAuthProviderParamsResponseMode string + // AuthLinkOAuthProviderParamsProvider defines parameters for AuthLinkOAuthProvider. type AuthLinkOAuthProviderParamsProvider string @@ -5304,9 +5975,13 @@ type AuthPlatformExchangeJSONBody struct { // AuthRefreshJSONBody defines parameters for AuthRefresh. type AuthRefreshJSONBody struct { - RefreshToken string `json:"refresh_token"` + RefreshToken *string `json:"refresh_token,omitempty"` + SessionMode *AuthRefreshJSONBodySessionMode `json:"session_mode,omitempty"` } +// AuthRefreshJSONBodySessionMode defines parameters for AuthRefresh. +type AuthRefreshJSONBodySessionMode string + // AuthResendConfirmationJSONBody defines parameters for AuthResendConfirmation. type AuthResendConfirmationJSONBody struct { Email openapi_types.Email `json:"email"` @@ -5314,6 +5989,8 @@ type AuthResendConfirmationJSONBody struct { // AuthResetPasswordJSONBody defines parameters for AuthResetPassword. type AuthResetPasswordJSONBody struct { + // NewPassword Password validated after NFC normalization against the + // policy returned by GET /auth/password-policy. NewPassword string `json:"new_password"` // Token Recovery token from forgot-password @@ -5322,13 +5999,20 @@ type AuthResetPasswordJSONBody struct { // AuthSigninJSONBody defines parameters for AuthSignin. type AuthSigninJSONBody struct { - Email string `json:"email"` - Password string `json:"password"` + Email string `json:"email"` + Password string `json:"password"` + SessionMode *AuthSigninJSONBodySessionMode `json:"session_mode,omitempty"` } +// AuthSigninJSONBodySessionMode defines parameters for AuthSignin. +type AuthSigninJSONBodySessionMode string + // AuthSignupJSONBody defines parameters for AuthSignup. type AuthSignupJSONBody struct { - Email openapi_types.Email `json:"email"` + Email openapi_types.Email `json:"email"` + + // Password Password validated after NFC normalization against the + // policy returned by GET /auth/password-policy. Password string `json:"password"` UserMetadata *map[string]interface{} `json:"user_metadata,omitempty"` } @@ -5341,7 +6025,13 @@ type AuthSignupAnonymousJSONBody struct { // AuthUpdateUserJSONBody defines parameters for AuthUpdateUser. type AuthUpdateUserJSONBody struct { - Password *string `json:"password,omitempty"` + // Password Password validated after NFC normalization against the + // policy returned by GET /auth/password-policy. + Password *string `json:"password,omitempty"` + + // UserMetadata Metadata keys to merge into the current user metadata. + // Omitted keys remain unchanged; set a key to null to remove it. + // Merging is shallow; nested objects replace the stored value for that top-level key. UserMetadata *map[string]interface{} `json:"user_metadata,omitempty"` } @@ -5357,7 +6047,10 @@ type AuthConfirmEmailChangeJSONBody struct { // AuthConvertAnonymousJSONBody defines parameters for AuthConvertAnonymous. type AuthConvertAnonymousJSONBody struct { - Email openapi_types.Email `json:"email"` + Email openapi_types.Email `json:"email"` + + // Password Password validated after NFC normalization against the + // policy returned by GET /auth/password-policy. Password string `json:"password"` UserMetadata *map[string]interface{} `json:"user_metadata,omitempty"` } @@ -5529,15 +6222,112 @@ type ResolveFunctionForInvocationParams struct { Name string `form:"name" json:"name"` } +// GitConnectCallbackParams defines parameters for GitConnectCallback. +type GitConnectCallbackParams struct { + // Code GitHub user authorization code. + Code *string `form:"code,omitempty" json:"code,omitempty"` + + // State Signed connect state generated by startGitConnect. + State string `form:"state" json:"state"` + + // Error Provider error returned by GitHub. + Error *string `form:"error,omitempty" json:"error,omitempty"` +} + +// ForceReleaseProjectLockParams defines parameters for ForceReleaseProjectLock. +type ForceReleaseProjectLockParams struct { + // XVolcanoRequestId UUID correlating this request across client and server logs. Repeat safety comes from + // the lock token, so a retry under a reused request ID still counts against the quota. + XVolcanoRequestId LockRequestId `json:"X-Volcano-Request-Id"` +} + +// GetProjectLockParams defines parameters for GetProjectLock. +type GetProjectLockParams struct { + // XVolcanoRequestId UUID correlating this request across client and server logs. Repeat safety comes from + // the lock token, so a retry under a reused request ID still counts against the quota. + XVolcanoRequestId LockRequestId `json:"X-Volcano-Request-Id"` +} + +// ReleaseProjectLockParams defines parameters for ReleaseProjectLock. +type ReleaseProjectLockParams struct { + // XVolcanoLockToken Opaque UUID generated once by the caller and retained for the lease lifetime. + XVolcanoLockToken LockToken `json:"X-Volcano-Lock-Token"` + + // XVolcanoRequestId UUID correlating this request across client and server logs. Repeat safety comes from + // the lock token, so a retry under a reused request ID still counts against the quota. + XVolcanoRequestId LockRequestId `json:"X-Volcano-Request-Id"` +} + +// RenewProjectLockParams defines parameters for RenewProjectLock. +type RenewProjectLockParams struct { + // XVolcanoLockToken Opaque UUID generated once by the caller and retained for the lease lifetime. + XVolcanoLockToken LockToken `json:"X-Volcano-Lock-Token"` + + // XVolcanoRequestId UUID correlating this request across client and server logs. Repeat safety comes from + // the lock token, so a retry under a reused request ID still counts against the quota. + XVolcanoRequestId LockRequestId `json:"X-Volcano-Request-Id"` +} + +// AcquireProjectLockParams defines parameters for AcquireProjectLock. +type AcquireProjectLockParams struct { + // XVolcanoLockToken Opaque UUID generated once by the caller and retained for the lease lifetime. + XVolcanoLockToken LockToken `json:"X-Volcano-Lock-Token"` + + // XVolcanoRequestId UUID correlating this request across client and server logs. Repeat safety comes from + // the lock token, so a retry under a reused request ID still counts against the quota. + XVolcanoRequestId LockRequestId `json:"X-Volcano-Request-Id"` +} + // ListProjectsParams defines parameters for ListProjects. type ListProjectsParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` } +// ListAnonKeysParams defines parameters for ListAnonKeys. +type ListAnonKeysParams struct { + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. + Page *Page `form:"page,omitempty" json:"page,omitempty"` + + // Limit Number of items per page (max 100) + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` +} + // CreateAnonKeyJSONBody defines parameters for CreateAnonKey. type CreateAnonKeyJSONBody struct { // Name Key name for identification. @@ -5589,6 +6379,18 @@ type GetHostedLoginOptionsParams struct { AnonKey string `form:"anon_key" json:"anon_key"` } +// GetAuthInsightsParams defines parameters for GetAuthInsights. +type GetAuthInsightsParams struct { + // From Inclusive UTC start date. Defaults to 29 days before `to`. + From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"` + + // To Inclusive UTC end date. Defaults to today. + To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"` + + // Interval Chart bucket size. Defaults to `day`. + Interval *AuthInsightsInterval `form:"interval,omitempty" json:"interval,omitempty"` +} + // ConfigureAuthMethodsJSONBody defines parameters for ConfigureAuthMethods. type ConfigureAuthMethodsJSONBody struct { EnableAnonymous *bool `json:"enable_anonymous,omitempty"` @@ -5601,11 +6403,39 @@ type ConfigureAuthMethodsJSONBody struct { // ListAuthUsersParams defines parameters for ListAuthUsers. type ListAuthUsersParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` } // BanAuthUserJSONBody defines parameters for BanAuthUser. @@ -5640,11 +6470,39 @@ type ApplyProjectConfigParams struct { // ListDatabasesParams defines parameters for ListDatabases. type ListDatabasesParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` } // GetProjectDatabaseQueriesParams defines parameters for GetProjectDatabaseQueries. @@ -5670,20 +6528,101 @@ type GetDatabaseStatsParamsGranularity string // ListProjectDeploymentsParams defines parameters for ListProjectDeployments. type ListProjectDeploymentsParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` + + // CreatedAfter Restrict results to attempts created at or after this timestamp. + CreatedAfter *time.Time `form:"created_after,omitempty" json:"created_after,omitempty"` + + // ResourceType Restrict the feed to a single resource type. Omit to return both + // Function and Frontend deployments. + ResourceType *ListProjectDeploymentsParamsResourceType `form:"resource_type,omitempty" json:"resource_type,omitempty"` +} + +// ListProjectDeploymentsParamsResourceType defines parameters for ListProjectDeployments. +type ListProjectDeploymentsParamsResourceType string + +// SummarizeProjectDeploymentsParams defines parameters for SummarizeProjectDeployments. +type SummarizeProjectDeploymentsParams struct { + // Search Restrict the summary to resource names containing this value. + Search *string `form:"search,omitempty" json:"search,omitempty"` + + // ResourceType Restrict the summary to one comparable deployment pipeline. + ResourceType SummarizeProjectDeploymentsParamsResourceType `form:"resource_type" json:"resource_type"` + + // CreatedAfter Restrict results to attempts created at or after this timestamp. + CreatedAfter *time.Time `form:"created_after,omitempty" json:"created_after,omitempty"` } +// SummarizeProjectDeploymentsParamsResourceType defines parameters for SummarizeProjectDeployments. +type SummarizeProjectDeploymentsParamsResourceType string + // ListProjectCustomDomainsParams defines parameters for ListProjectCustomDomains. type ListProjectCustomDomainsParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` } // DeleteEmailTemplateParamsType defines parameters for DeleteEmailTemplate. @@ -5697,11 +6636,39 @@ type UpdateEmailTemplateParamsType string // ListFrontendsParams defines parameters for ListFrontends. type ListFrontendsParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` } // CreateFrontendMultipartBody defines parameters for CreateFrontend. @@ -5724,7 +6691,11 @@ type CreateFrontendMultipartBodyFramework string // ListFrontendDeploymentsParams defines parameters for ListFrontendDeployments. type ListFrontendDeploymentsParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) @@ -5739,11 +6710,39 @@ type GetFrontendUsageHistoryParams struct { // ListFunctionsParams defines parameters for ListFunctions. type ListFunctionsParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` } // CreateFunctionMultipartBody defines parameters for CreateFunction. @@ -5782,7 +6781,11 @@ type CreateFunctionsBatchMultipartBody struct { // ListFunctionDeploymentsParams defines parameters for ListFunctionDeployments. type ListFunctionDeploymentsParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) @@ -5833,20 +6836,76 @@ type UpdateOAuthConfigParamsProvider string // ListProjectSchedulersParams defines parameters for ListProjectSchedulers. type ListProjectSchedulersParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` } // ListServiceKeysParams defines parameters for ListServiceKeys. type ListServiceKeysParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` } // CreateServiceKeyJSONBody defines parameters for CreateServiceKey. @@ -5858,13 +6917,50 @@ type CreateServiceKeyJSONBody struct { // Permissions Optional least-privilege scope for the key. When omitted, empty, or // containing only blank strings, the key is granted full access (["*"]) // for backward compatibility. Provide an explicit list (e.g. - // ["functions.invoke", "storage.download"]) to restrict the key; "*" - // grants everything. Scope enforcement currently applies to function - // invocation and storage object operations; other service-key routes - // are not yet gated by scope. + // ["functions.invoke", "locks.manage"]) to restrict the key; "*" + // grants everything. Scope enforcement applies to function invocation, + // storage object operations, and project locks. Permissions *[]string `json:"permissions,omitempty"` } +// ListStorageBucketsParams defines parameters for ListStorageBuckets. +type ListStorageBucketsParams struct { + // Limit Number of items per page (max 100) + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` +} + +// ListStorageBuckets200JSONResponseBody0 defines parameters for ListStorageBuckets. +type ListStorageBuckets200JSONResponseBody0 = []StorageBucket + +// ListStorageBuckets200JSONResponseBody defines parameters for ListStorageBuckets. +type ListStorageBuckets200JSONResponseBody struct { + union json.RawMessage +} + // ListStorageObjectsAdminParams defines parameters for ListStorageObjectsAdmin. type ListStorageObjectsAdminParams struct { // OwnerId Filter by owner user ID @@ -5875,15 +6971,67 @@ type ListStorageObjectsAdminParams struct { // Limit Items per page Limit *int `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` } // ListVariablesParams defines parameters for ListVariables. type ListVariablesParams struct { - // Page Page number (1-indexed) + // Page Page number (1-indexed) for offset pagination. Declares no schema + // default so the request validator does not inject one: handlers that omit + // `page` see it unset (nil) and default to 1 in code, while cursor-first + // endpoints (e.g. the project deployments feed) can detect its absence to + // stay in keyset/search mode. Supplying `page` selects offset pagination. Page *Page `form:"page,omitempty" json:"page,omitempty"` // Limit Number of items per page (max 100) Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Cursor Opaque keyset pagination cursor from a previous response's `next_cursor` + // — pages forward. Mutually exclusive with `page` and `ending_before`; + // combining them returns 400. When supplied, the request's `search` and + // `limit` must match the values bound to the cursor or the request returns 400. + Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` + + // EndingBefore Opaque keyset pagination cursor from a previous response's `prev_cursor` + // — pages backward (the page immediately preceding this cursor). Mutually + // exclusive with `page` and `cursor`; combining them returns 400. `search` + // and `limit` must match the values bound to the cursor or the request + // returns 400. + EndingBefore *EndingBefore `form:"ending_before,omitempty" json:"ending_before,omitempty"` + + // Offset Bounded row offset past the keyset anchor named by `cursor` (forward) or + // `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + // skip this many rows within. Used for numbered jump-to-page: from the + // current page, seek to its next/prev cursor and offset the remaining + // pages. Only honored on the cursor pagination path; ignored otherwise. + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Search Case-insensitive substring match on the resource `name`. Only honored on + // the cursor pagination path. + Search *Search `form:"search,omitempty" json:"search,omitempty"` } // ListStorageObjectsParams defines parameters for ListStorageObjects. @@ -5947,6 +7095,18 @@ type UploadPartParams struct { XPartNumber int `json:"X-Part-Number"` } +// StartGitConnectParams defines parameters for StartGitConnect. +type StartGitConnectParams struct { + // Provider Git provider to connect. Defaults to github. + Provider *StartGitConnectParamsProvider `form:"provider,omitempty" json:"provider,omitempty"` + + // Redirect URL to redirect the browser to after the provider callback completes. + Redirect *string `form:"redirect,omitempty" json:"redirect,omitempty"` +} + +// StartGitConnectParamsProvider defines parameters for StartGitConnect. +type StartGitConnectParamsProvider string + // AuthConfirmEmailJSONRequestBody defines body for AuthConfirmEmail for application/json ContentType. type AuthConfirmEmailJSONRequestBody AuthConfirmEmailJSONBody @@ -5965,6 +7125,9 @@ type AuthForgotPasswordJSONRequestBody AuthForgotPasswordJSONBody // AuthLogoutJSONRequestBody defines body for AuthLogout for application/json ContentType. type AuthLogoutJSONRequestBody AuthLogoutJSONBody +// AuthOAuthExchangeJSONRequestBody defines body for AuthOAuthExchange for application/json ContentType. +type AuthOAuthExchangeJSONRequestBody AuthOAuthExchangeJSONBody + // CallOAuthProviderAPIJSONRequestBody defines body for CallOAuthProviderAPI for application/json ContentType. type CallOAuthProviderAPIJSONRequestBody CallOAuthProviderAPIJSONBody @@ -6016,6 +7179,12 @@ type QueryDatabaseUpdateJSONRequestBody QueryDatabaseUpdateJSONBody // InvokeFunctionJSONRequestBody defines body for InvokeFunction for application/json ContentType. type InvokeFunctionJSONRequestBody = FunctionInvocationRequest +// RenewProjectLockJSONRequestBody defines body for RenewProjectLock for application/json ContentType. +type RenewProjectLockJSONRequestBody = ProjectLockLeaseRequest + +// AcquireProjectLockJSONRequestBody defines body for AcquireProjectLock for application/json ContentType. +type AcquireProjectLockJSONRequestBody = ProjectLockLeaseRequest + // CreateProjectJSONRequestBody defines body for CreateProject for application/json ContentType. type CreateProjectJSONRequestBody = CreateProjectRequest @@ -6079,6 +7248,12 @@ type CreateFunctionSchedulerJSONRequestBody = CreateFunctionSchedulerRequest // UpdateFunctionSchedulerJSONRequestBody defines body for UpdateFunctionScheduler for application/json ContentType. type UpdateFunctionSchedulerJSONRequestBody = UpdateFunctionSchedulerRequest +// ConnectProjectGitJSONRequestBody defines body for ConnectProjectGit for application/json ContentType. +type ConnectProjectGitJSONRequestBody = ConnectProjectGitRequest + +// UpdateProjectGitDeploySettingsJSONRequestBody defines body for UpdateProjectGitDeploySettings for application/json ContentType. +type UpdateProjectGitDeploySettingsJSONRequestBody = UpdateProjectGitDeploySettingsRequest + // UploadProjectLogoMultipartRequestBody defines body for UploadProjectLogo for multipart/form-data ContentType. type UploadProjectLogoMultipartRequestBody UploadProjectLogoMultipartBody @@ -6913,6 +8088,68 @@ func (t *QueryDatabaseUpdateJSONBody_Filters_Value) UnmarshalJSON(b []byte) erro return err } +// AsListStorageBuckets200JSONResponseBody0 returns the union data inside the ListStorageBuckets200JSONResponseBody as a ListStorageBuckets200JSONResponseBody0 +func (t ListStorageBuckets200JSONResponseBody) AsListStorageBuckets200JSONResponseBody0() (ListStorageBuckets200JSONResponseBody0, error) { + var body ListStorageBuckets200JSONResponseBody0 + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromListStorageBuckets200JSONResponseBody0 overwrites any union data inside the ListStorageBuckets200JSONResponseBody as the provided ListStorageBuckets200JSONResponseBody0 +func (t *ListStorageBuckets200JSONResponseBody) FromListStorageBuckets200JSONResponseBody0(v ListStorageBuckets200JSONResponseBody0) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeListStorageBuckets200JSONResponseBody0 performs a merge with any union data inside the ListStorageBuckets200JSONResponseBody, using the provided ListStorageBuckets200JSONResponseBody0 +func (t *ListStorageBuckets200JSONResponseBody) MergeListStorageBuckets200JSONResponseBody0(v ListStorageBuckets200JSONResponseBody0) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +// AsPaginatedStorageBuckets returns the union data inside the ListStorageBuckets200JSONResponseBody as a PaginatedStorageBuckets +func (t ListStorageBuckets200JSONResponseBody) AsPaginatedStorageBuckets() (PaginatedStorageBuckets, error) { + var body PaginatedStorageBuckets + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromPaginatedStorageBuckets overwrites any union data inside the ListStorageBuckets200JSONResponseBody as the provided PaginatedStorageBuckets +func (t *ListStorageBuckets200JSONResponseBody) FromPaginatedStorageBuckets(v PaginatedStorageBuckets) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergePaginatedStorageBuckets performs a merge with any union data inside the ListStorageBuckets200JSONResponseBody, using the provided PaginatedStorageBuckets +func (t *ListStorageBuckets200JSONResponseBody) MergePaginatedStorageBuckets(v PaginatedStorageBuckets) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +func (t ListStorageBuckets200JSONResponseBody) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} + +func (t *ListStorageBuckets200JSONResponseBody) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} + // AsStorageObject returns the union data inside the UploadStorageObject201JSONResponseBody as a StorageObject func (t UploadStorageObject201JSONResponseBody) AsStorageObject() (StorageObject, error) { var body StorageObject @@ -7078,6 +8315,11 @@ type ClientInterface interface { AuthLogout(ctx context.Context, body AuthLogoutJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // AuthOAuthExchangeWithBody request with any body + AuthOAuthExchangeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + AuthOAuthExchange(ctx context.Context, body AuthOAuthExchangeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // AuthListOAuthProviders request AuthListOAuthProviders(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -7093,7 +8335,7 @@ type ClientInterface interface { AuthOAuthCallback(ctx context.Context, provider AuthOAuthCallbackParamsProvider, params *AuthOAuthCallbackParams, reqEditors ...RequestEditorFn) (*http.Response, error) // AuthLinkOAuthProvider request - AuthLinkOAuthProvider(ctx context.Context, provider AuthLinkOAuthProviderParamsProvider, reqEditors ...RequestEditorFn) (*http.Response, error) + AuthLinkOAuthProvider(ctx context.Context, provider AuthLinkOAuthProviderParamsProvider, params *AuthLinkOAuthProviderParams, reqEditors ...RequestEditorFn) (*http.Response, error) // RefreshOAuthProviderToken request RefreshOAuthProviderToken(ctx context.Context, provider RefreshOAuthProviderTokenParamsProvider, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -7104,6 +8346,9 @@ type ClientInterface interface { // AuthUnlinkOAuthProvider request AuthUnlinkOAuthProvider(ctx context.Context, provider AuthUnlinkOAuthProviderParamsProvider, reqEditors ...RequestEditorFn) (*http.Response, error) + // AuthGetPasswordPolicy request + AuthGetPasswordPolicy(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + // AuthPlatformExchangeWithBody request with any body AuthPlatformExchangeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -7235,9 +8480,31 @@ type ClientInterface interface { InvokeFunction(ctx context.Context, functionId FunctionId, body InvokeFunctionJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // GitConnectCallback request + GitConnectCallback(ctx context.Context, params *GitConnectCallbackParams, reqEditors ...RequestEditorFn) (*http.Response, error) + // HealthCheck request HealthCheck(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + // ForceReleaseProjectLock request + ForceReleaseProjectLock(ctx context.Context, key LockKey, params *ForceReleaseProjectLockParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetProjectLock request + GetProjectLock(ctx context.Context, key LockKey, params *GetProjectLockParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // ReleaseProjectLock request + ReleaseProjectLock(ctx context.Context, key LockKey, params *ReleaseProjectLockParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // RenewProjectLockWithBody request with any body + RenewProjectLockWithBody(ctx context.Context, key LockKey, params *RenewProjectLockParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + RenewProjectLock(ctx context.Context, key LockKey, params *RenewProjectLockParams, body RenewProjectLockJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // AcquireProjectLockWithBody request with any body + AcquireProjectLockWithBody(ctx context.Context, key LockKey, params *AcquireProjectLockParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + AcquireProjectLock(ctx context.Context, key LockKey, params *AcquireProjectLockParams, body AcquireProjectLockJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // ListProjects request ListProjects(ctx context.Context, params *ListProjectsParams, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -7258,7 +8525,7 @@ type ClientInterface interface { UpdateProject(ctx context.Context, id ProjectId, body UpdateProjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) // ListAnonKeys request - ListAnonKeys(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) + ListAnonKeys(ctx context.Context, id ProjectId, params *ListAnonKeysParams, reqEditors ...RequestEditorFn) (*http.Response, error) // CreateAnonKeyWithBody request with any body CreateAnonKeyWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -7312,6 +8579,9 @@ type ClientInterface interface { // RenderManagedAuthPage request RenderManagedAuthPage(ctx context.Context, id ProjectId, pageType HostedRenderablePageType, reqEditors ...RequestEditorFn) (*http.Response, error) + // GetAuthInsights request + GetAuthInsights(ctx context.Context, id ProjectId, params *GetAuthInsightsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + // GetAuthMethods request GetAuthMethods(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -7385,6 +8655,9 @@ type ClientInterface interface { // ListProjectDeployments request ListProjectDeployments(ctx context.Context, id ProjectId, params *ListProjectDeploymentsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + // SummarizeProjectDeployments request + SummarizeProjectDeployments(ctx context.Context, id ProjectId, params *SummarizeProjectDeploymentsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + // ListProjectCustomDomains request ListProjectCustomDomains(ctx context.Context, id ProjectId, params *ListProjectCustomDomainsParams, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -7481,6 +8754,25 @@ type ClientInterface interface { UpdateFunctionScheduler(ctx context.Context, id ProjectId, functionId FunctionId, schedulerId SchedulerId, body UpdateFunctionSchedulerJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // DisconnectProjectGit request + DisconnectProjectGit(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetProjectGitConnection request + GetProjectGitConnection(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // ConnectProjectGitWithBody request with any body + ConnectProjectGitWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + ConnectProjectGit(ctx context.Context, id ProjectId, body ConnectProjectGitJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetProjectGitDeploySettings request + GetProjectGitDeploySettings(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // UpdateProjectGitDeploySettingsWithBody request with any body + UpdateProjectGitDeploySettingsWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + UpdateProjectGitDeploySettings(ctx context.Context, id ProjectId, body UpdateProjectGitDeploySettingsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // GetProjectHealth request GetProjectHealth(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -7567,7 +8859,7 @@ type ClientInterface interface { RegenerateServiceKey(ctx context.Context, id ProjectId, keyId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) // ListStorageBuckets request - ListStorageBuckets(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) + ListStorageBuckets(ctx context.Context, id ProjectId, params *ListStorageBucketsParams, reqEditors ...RequestEditorFn) (*http.Response, error) // CreateStorageBucketWithBody request with any body CreateStorageBucketWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -7658,6 +8950,21 @@ type ClientInterface interface { UpdateStorageObjectVisibilityWithBody(ctx context.Context, bucketName BucketName, path string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) UpdateStorageObjectVisibility(ctx context.Context, bucketName BucketName, path string, body UpdateStorageObjectVisibilityJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // StartGitConnect request + StartGitConnect(ctx context.Context, params *StartGitConnectParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // ListGitConnections request + ListGitConnections(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteGitConnection request + DeleteGitConnection(ctx context.Context, connectionId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) + + // ListGitInstallations request + ListGitInstallations(ctx context.Context, connectionId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) + + // ListGitInstallationRepositories request + ListGitInstallationRepositories(ctx context.Context, connectionId openapi_types.UUID, installationId int64, reqEditors ...RequestEditorFn) (*http.Response, error) } func (c *Client) AuthConfirmEmailWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { @@ -7804,6 +9111,30 @@ func (c *Client) AuthLogout(ctx context.Context, body AuthLogoutJSONRequestBody, return c.Client.Do(req) } +func (c *Client) AuthOAuthExchangeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewAuthOAuthExchangeRequestWithBody(c.Server, 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) AuthOAuthExchange(ctx context.Context, body AuthOAuthExchangeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewAuthOAuthExchangeRequest(c.Server, 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) AuthListOAuthProviders(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewAuthListOAuthProvidersRequest(c.Server) if err != nil { @@ -7864,8 +9195,8 @@ func (c *Client) AuthOAuthCallback(ctx context.Context, provider AuthOAuthCallba return c.Client.Do(req) } -func (c *Client) AuthLinkOAuthProvider(ctx context.Context, provider AuthLinkOAuthProviderParamsProvider, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewAuthLinkOAuthProviderRequest(c.Server, provider) +func (c *Client) AuthLinkOAuthProvider(ctx context.Context, provider AuthLinkOAuthProviderParamsProvider, params *AuthLinkOAuthProviderParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewAuthLinkOAuthProviderRequest(c.Server, provider, params) if err != nil { return nil, err } @@ -7912,6 +9243,18 @@ func (c *Client) AuthUnlinkOAuthProvider(ctx context.Context, provider AuthUnlin return c.Client.Do(req) } +func (c *Client) AuthGetPasswordPolicy(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewAuthGetPasswordPolicyRequest(c.Server) + 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) AuthPlatformExchangeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewAuthPlatformExchangeRequestWithBody(c.Server, contentType, body) if err != nil { @@ -8500,6 +9843,18 @@ func (c *Client) InvokeFunction(ctx context.Context, functionId FunctionId, body return c.Client.Do(req) } +func (c *Client) GitConnectCallback(ctx context.Context, params *GitConnectCallbackParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGitConnectCallbackRequest(c.Server, params) + 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) HealthCheck(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewHealthCheckRequest(c.Server) if err != nil { @@ -8512,6 +9867,90 @@ func (c *Client) HealthCheck(ctx context.Context, reqEditors ...RequestEditorFn) return c.Client.Do(req) } +func (c *Client) ForceReleaseProjectLock(ctx context.Context, key LockKey, params *ForceReleaseProjectLockParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewForceReleaseProjectLockRequest(c.Server, key, params) + 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) GetProjectLock(ctx context.Context, key LockKey, params *GetProjectLockParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetProjectLockRequest(c.Server, key, params) + 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) ReleaseProjectLock(ctx context.Context, key LockKey, params *ReleaseProjectLockParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewReleaseProjectLockRequest(c.Server, key, params) + 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) RenewProjectLockWithBody(ctx context.Context, key LockKey, params *RenewProjectLockParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewRenewProjectLockRequestWithBody(c.Server, key, params, 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) RenewProjectLock(ctx context.Context, key LockKey, params *RenewProjectLockParams, body RenewProjectLockJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewRenewProjectLockRequest(c.Server, key, params, 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) AcquireProjectLockWithBody(ctx context.Context, key LockKey, params *AcquireProjectLockParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewAcquireProjectLockRequestWithBody(c.Server, key, params, 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) AcquireProjectLock(ctx context.Context, key LockKey, params *AcquireProjectLockParams, body AcquireProjectLockJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewAcquireProjectLockRequest(c.Server, key, params, 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) ListProjects(ctx context.Context, params *ListProjectsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewListProjectsRequest(c.Server, params) if err != nil { @@ -8596,8 +10035,8 @@ func (c *Client) UpdateProject(ctx context.Context, id ProjectId, body UpdatePro return c.Client.Do(req) } -func (c *Client) ListAnonKeys(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewListAnonKeysRequest(c.Server, id) +func (c *Client) ListAnonKeys(ctx context.Context, id ProjectId, params *ListAnonKeysParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewListAnonKeysRequest(c.Server, id, params) if err != nil { return nil, err } @@ -8836,6 +10275,18 @@ func (c *Client) RenderManagedAuthPage(ctx context.Context, id ProjectId, pageTy return c.Client.Do(req) } +func (c *Client) GetAuthInsights(ctx context.Context, id ProjectId, params *GetAuthInsightsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetAuthInsightsRequest(c.Server, id, params) + 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) GetAuthMethods(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetAuthMethodsRequest(c.Server, id) if err != nil { @@ -9148,6 +10599,18 @@ func (c *Client) ListProjectDeployments(ctx context.Context, id ProjectId, param return c.Client.Do(req) } +func (c *Client) SummarizeProjectDeployments(ctx context.Context, id ProjectId, params *SummarizeProjectDeploymentsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSummarizeProjectDeploymentsRequest(c.Server, id, params) + 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) ListProjectCustomDomains(ctx context.Context, id ProjectId, params *ListProjectCustomDomainsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewListProjectCustomDomainsRequest(c.Server, id, params) if err != nil { @@ -9556,6 +11019,90 @@ func (c *Client) UpdateFunctionScheduler(ctx context.Context, id ProjectId, func return c.Client.Do(req) } +func (c *Client) DisconnectProjectGit(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDisconnectProjectGitRequest(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) GetProjectGitConnection(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetProjectGitConnectionRequest(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) ConnectProjectGitWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewConnectProjectGitRequestWithBody(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) ConnectProjectGit(ctx context.Context, id ProjectId, body ConnectProjectGitJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewConnectProjectGitRequest(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 { + 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) UpdateProjectGitDeploySettingsWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewUpdateProjectGitDeploySettingsRequestWithBody(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) UpdateProjectGitDeploySettings(ctx context.Context, id ProjectId, body UpdateProjectGitDeploySettingsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewUpdateProjectGitDeploySettingsRequest(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) GetProjectHealth(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetProjectHealthRequest(c.Server, id) if err != nil { @@ -9928,8 +11475,8 @@ func (c *Client) RegenerateServiceKey(ctx context.Context, id ProjectId, keyId o return c.Client.Do(req) } -func (c *Client) ListStorageBuckets(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewListStorageBucketsRequest(c.Server, id) +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 { return nil, err } @@ -10336,6 +11883,66 @@ func (c *Client) UpdateStorageObjectVisibility(ctx context.Context, bucketName B return c.Client.Do(req) } +func (c *Client) StartGitConnect(ctx context.Context, params *StartGitConnectParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewStartGitConnectRequest(c.Server, params) + 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) ListGitConnections(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewListGitConnectionsRequest(c.Server) + 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) DeleteGitConnection(ctx context.Context, connectionId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteGitConnectionRequest(c.Server, connectionId) + 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) ListGitInstallations(ctx context.Context, connectionId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewListGitInstallationsRequest(c.Server, connectionId) + 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) ListGitInstallationRepositories(ctx context.Context, connectionId openapi_types.UUID, installationId int64, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewListGitInstallationRepositoriesRequest(c.Server, connectionId, installationId) + 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) +} + // NewAuthConfirmEmailRequest calls the generic AuthConfirmEmail builder with application/json body func NewAuthConfirmEmailRequest(server string, body AuthConfirmEmailJSONRequestBody) (*http.Request, error) { var bodyReader io.Reader @@ -10576,6 +12183,46 @@ func NewAuthLogoutRequestWithBody(server string, contentType string, body io.Rea return req, nil } +// NewAuthOAuthExchangeRequest calls the generic AuthOAuthExchange builder with application/json body +func NewAuthOAuthExchangeRequest(server string, body AuthOAuthExchangeJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewAuthOAuthExchangeRequestWithBody(server, "application/json", bodyReader) +} + +// NewAuthOAuthExchangeRequestWithBody generates requests for AuthOAuthExchange with any type of body +func NewAuthOAuthExchangeRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/auth/oauth/exchange") + 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 +} + // NewAuthListOAuthProvidersRequest generates requests for AuthListOAuthProviders func NewAuthListOAuthProvidersRequest(server string) (*http.Request, error) { var err error @@ -10658,6 +12305,30 @@ func NewAuthOAuthAuthorizeRequest(server string, provider AuthOAuthAuthorizePara } + if params.ClientState != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "client_state", *params.ClientState, 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 params.ResponseMode != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "response_mode", *params.ResponseMode, 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) } @@ -10797,7 +12468,7 @@ func NewAuthOAuthCallbackRequest(server string, provider AuthOAuthCallbackParams } // NewAuthLinkOAuthProviderRequest generates requests for AuthLinkOAuthProvider -func NewAuthLinkOAuthProviderRequest(server string, provider AuthLinkOAuthProviderParamsProvider) (*http.Request, error) { +func NewAuthLinkOAuthProviderRequest(server string, provider AuthLinkOAuthProviderParamsProvider, params *AuthLinkOAuthProviderParams) (*http.Request, error) { var err error var pathParam0 string @@ -10822,6 +12493,57 @@ func NewAuthLinkOAuthProviderRequest(server string, provider AuthLinkOAuthProvid 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.RedirectUrl != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "redirect_url", *params.RedirectUrl, 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 params.ClientState != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "client_state", *params.ClientState, 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 params.ResponseMode != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "response_mode", *params.ResponseMode, 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.MethodPost, queryURL.String(), nil) if err != nil { return nil, err @@ -10932,6 +12654,33 @@ func NewAuthUnlinkOAuthProviderRequest(server string, provider AuthUnlinkOAuthPr return req, nil } +// NewAuthGetPasswordPolicyRequest generates requests for AuthGetPasswordPolicy +func NewAuthGetPasswordPolicyRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/auth/password-policy") + 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 +} + // NewAuthPlatformExchangeRequest calls the generic AuthPlatformExchange builder with application/json body func NewAuthPlatformExchangeRequest(server string, body AuthPlatformExchangeJSONRequestBody) (*http.Request, error) { var bodyReader io.Reader @@ -12163,6 +13912,80 @@ func NewInvokeFunctionRequestWithBody(server string, functionId FunctionId, cont return req, nil } +// NewGitConnectCallbackRequest generates requests for GitConnectCallback +func NewGitConnectCallbackRequest(server string, params *GitConnectCallbackParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/github/callback") + 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.Code != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "code", *params.Code, 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 queryFrag, err := runtime.StyleParamWithOptions("form", true, "state", params.State, 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 params.Error != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "error", *params.Error, 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 +} + // NewHealthCheckRequest generates requests for HealthCheck func NewHealthCheckRequest(server string) (*http.Request, error) { var err error @@ -12190,6 +14013,294 @@ func NewHealthCheckRequest(server string) (*http.Request, error) { return req, nil } +// NewForceReleaseProjectLockRequest generates requests for ForceReleaseProjectLock +func NewForceReleaseProjectLockRequest(server string, key LockKey, params *ForceReleaseProjectLockParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "key", key, 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("/locks/%s", 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 + } + + if params != nil { + + var headerParam0 string + + headerParam0, err = runtime.StyleParamWithOptions("simple", false, "X-Volcano-Request-Id", params.XVolcanoRequestId, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationHeader, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + req.Header.Set("X-Volcano-Request-Id", headerParam0) + + } + + return req, nil +} + +// NewGetProjectLockRequest generates requests for GetProjectLock +func NewGetProjectLockRequest(server string, key LockKey, params *GetProjectLockParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "key", key, 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("/locks/%s", 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 + } + + if params != nil { + + var headerParam0 string + + headerParam0, err = runtime.StyleParamWithOptions("simple", false, "X-Volcano-Request-Id", params.XVolcanoRequestId, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationHeader, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + req.Header.Set("X-Volcano-Request-Id", headerParam0) + + } + + return req, nil +} + +// NewReleaseProjectLockRequest generates requests for ReleaseProjectLock +func NewReleaseProjectLockRequest(server string, key LockKey, params *ReleaseProjectLockParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "key", key, 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("/locks/%s/lease", 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 + } + + if params != nil { + + var headerParam0 string + + headerParam0, err = runtime.StyleParamWithOptions("simple", false, "X-Volcano-Lock-Token", params.XVolcanoLockToken, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationHeader, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + req.Header.Set("X-Volcano-Lock-Token", headerParam0) + + var headerParam1 string + + headerParam1, err = runtime.StyleParamWithOptions("simple", false, "X-Volcano-Request-Id", params.XVolcanoRequestId, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationHeader, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + req.Header.Set("X-Volcano-Request-Id", headerParam1) + + } + + return req, nil +} + +// NewRenewProjectLockRequest calls the generic RenewProjectLock builder with application/json body +func NewRenewProjectLockRequest(server string, key LockKey, params *RenewProjectLockParams, body RenewProjectLockJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewRenewProjectLockRequestWithBody(server, key, params, "application/json", bodyReader) +} + +// NewRenewProjectLockRequestWithBody generates requests for RenewProjectLock with any type of body +func NewRenewProjectLockRequestWithBody(server string, key LockKey, params *RenewProjectLockParams, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "key", key, 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("/locks/%s/lease", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodPatch, queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + if params != nil { + + var headerParam0 string + + headerParam0, err = runtime.StyleParamWithOptions("simple", false, "X-Volcano-Lock-Token", params.XVolcanoLockToken, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationHeader, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + req.Header.Set("X-Volcano-Lock-Token", headerParam0) + + var headerParam1 string + + headerParam1, err = runtime.StyleParamWithOptions("simple", false, "X-Volcano-Request-Id", params.XVolcanoRequestId, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationHeader, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + req.Header.Set("X-Volcano-Request-Id", headerParam1) + + } + + return req, nil +} + +// NewAcquireProjectLockRequest calls the generic AcquireProjectLock builder with application/json body +func NewAcquireProjectLockRequest(server string, key LockKey, params *AcquireProjectLockParams, body AcquireProjectLockJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewAcquireProjectLockRequestWithBody(server, key, params, "application/json", bodyReader) +} + +// NewAcquireProjectLockRequestWithBody generates requests for AcquireProjectLock with any type of body +func NewAcquireProjectLockRequestWithBody(server string, key LockKey, params *AcquireProjectLockParams, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "key", key, 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("/locks/%s/lease", 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) + + if params != nil { + + var headerParam0 string + + headerParam0, err = runtime.StyleParamWithOptions("simple", false, "X-Volcano-Lock-Token", params.XVolcanoLockToken, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationHeader, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + req.Header.Set("X-Volcano-Lock-Token", headerParam0) + + var headerParam1 string + + headerParam1, err = runtime.StyleParamWithOptions("simple", false, "X-Volcano-Request-Id", params.XVolcanoRequestId, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationHeader, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + req.Header.Set("X-Volcano-Request-Id", headerParam1) + + } + + return req, nil +} + // NewListProjectsRequest generates requests for ListProjects func NewListProjectsRequest(server string, params *ListProjectsParams) (*http.Request, error) { var err error @@ -12412,7 +14523,7 @@ func NewUpdateProjectRequestWithBody(server string, id ProjectId, contentType st } // NewListAnonKeysRequest generates requests for ListAnonKeys -func NewListAnonKeysRequest(server string, id ProjectId) (*http.Request, error) { +func NewListAnonKeysRequest(server string, id ProjectId, params *ListAnonKeysParams) (*http.Request, error) { var err error var pathParam0 string @@ -12437,6 +14548,93 @@ func NewListAnonKeysRequest(server string, id ProjectId) (*http.Request, error) 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.Page != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "page", *params.Page, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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 @@ -13134,6 +15332,91 @@ 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) + 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 @@ -13274,92 +15557,58 @@ func NewListAuthUsersRequest(server string, id ProjectId, params *ListAuthUsersP } - 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 -} - -// NewDeleteAuthUserRequest generates requests for DeleteAuthUser -func NewDeleteAuthUserRequest(server string, id ProjectId, userId openapi_types.UUID) (*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, "userId", userId, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) - if err != nil { - return nil, err - } + if params.Cursor != nil { - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } - operationPath := fmt.Sprintf("/projects/%s/auth/users/%s", pathParam0, pathParam1) - if operationPath[0] == '/' { - operationPath = "." + operationPath - } + } - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } + if params.EndingBefore != nil { - req, err := http.NewRequest(http.MethodDelete, queryURL.String(), nil) - if err != nil { - return nil, err - } - - return req, nil -} + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } -// NewGetAuthUserRequest generates requests for GetAuthUser -func NewGetAuthUserRequest(server string, id ProjectId, userId openapi_types.UUID) (*http.Request, error) { - var err error + } - var pathParam0 string + if params.Offset != nil { - pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) - if err != nil { - return nil, err - } + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } - var pathParam1 string + } - pathParam1, err = runtime.StyleParamWithOptions("simple", false, "userId", userId, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) - if err != nil { - return nil, err - } + if params.Search != nil { - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } - operationPath := fmt.Sprintf("/projects/%s/auth/users/%s", pathParam0, pathParam1) - if operationPath[0] == '/' { - operationPath = "." + operationPath - } + } - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err + if encoded := queryValues.Encode(); encoded != "" { + rawQueryFragments = append(rawQueryFragments, encoded) + } + queryURL.RawQuery = strings.Join(rawQueryFragments, "&") } req, err := http.NewRequest(http.MethodGet, queryURL.String(), nil) @@ -13370,19 +15619,101 @@ func NewGetAuthUserRequest(server string, id ProjectId, userId openapi_types.UUI return req, nil } -// NewBanAuthUserRequest calls the generic BanAuthUser builder with application/json body -func NewBanAuthUserRequest(server string, id ProjectId, userId openapi_types.UUID, body BanAuthUserJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewBanAuthUserRequestWithBody(server, id, userId, "application/json", bodyReader) -} - -// NewBanAuthUserRequestWithBody generates requests for BanAuthUser with any type of body -func NewBanAuthUserRequestWithBody(server string, id ProjectId, userId openapi_types.UUID, contentType string, body io.Reader) (*http.Request, error) { +// NewDeleteAuthUserRequest generates requests for DeleteAuthUser +func NewDeleteAuthUserRequest(server string, id ProjectId, userId openapi_types.UUID) (*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, "userId", userId, 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/users/%s", pathParam0, pathParam1) + 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 +} + +// NewGetAuthUserRequest generates requests for GetAuthUser +func NewGetAuthUserRequest(server string, id ProjectId, userId openapi_types.UUID) (*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, "userId", userId, 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/users/%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 +} + +// NewBanAuthUserRequest calls the generic BanAuthUser builder with application/json body +func NewBanAuthUserRequest(server string, id ProjectId, userId openapi_types.UUID, body BanAuthUserJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewBanAuthUserRequestWithBody(server, id, userId, "application/json", bodyReader) +} + +// NewBanAuthUserRequestWithBody generates requests for BanAuthUser with any type of body +func NewBanAuthUserRequestWithBody(server string, id ProjectId, userId openapi_types.UUID, contentType string, body io.Reader) (*http.Request, error) { var err error var pathParam0 string @@ -13828,6 +16159,54 @@ func NewListDatabasesRequest(server string, id ProjectId, params *ListDatabasesP } + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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) } @@ -14285,6 +16664,159 @@ func NewListProjectDeploymentsRequest(server string, id ProjectId, params *ListP } + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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 params.CreatedAfter != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "created_after", *params.CreatedAfter, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: "date-time"}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.ResourceType != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "resource_type", *params.ResourceType, 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 +} + +// NewSummarizeProjectDeploymentsRequest generates requests for SummarizeProjectDeployments +func NewSummarizeProjectDeploymentsRequest(server string, id ProjectId, params *SummarizeProjectDeploymentsParams) (*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/deployments/summary", 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.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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 queryFrag, err := runtime.StyleParamWithOptions("form", true, "resource_type", params.ResourceType, 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 params.CreatedAfter != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "created_after", *params.CreatedAfter, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: "date-time"}); 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) } @@ -14358,6 +16890,54 @@ func NewListProjectCustomDomainsRequest(server string, id ProjectId, params *Lis } + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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) } @@ -14648,6 +17228,54 @@ func NewListFrontendsRequest(server string, id ProjectId, params *ListFrontendsP } + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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) } @@ -15164,6 +17792,54 @@ func NewListFunctionsRequest(server string, id ProjectId, params *ListFunctionsP } + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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) } @@ -15718,6 +18394,202 @@ func NewUpdateFunctionSchedulerRequestWithBody(server string, id ProjectId, func return req, nil } +// NewDisconnectProjectGitRequest generates requests for DisconnectProjectGit +func NewDisconnectProjectGitRequest(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/git-connection", 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 +} + +// NewGetProjectGitConnectionRequest generates requests for GetProjectGitConnection +func NewGetProjectGitConnectionRequest(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/git-connection", 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 +} + +// NewConnectProjectGitRequest calls the generic ConnectProjectGit builder with application/json body +func NewConnectProjectGitRequest(server string, id ProjectId, body ConnectProjectGitJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewConnectProjectGitRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewConnectProjectGitRequestWithBody generates requests for ConnectProjectGit with any type of body +func NewConnectProjectGitRequestWithBody(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", 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 +} + +// NewGetProjectGitDeploySettingsRequest generates requests for GetProjectGitDeploySettings +func NewGetProjectGitDeploySettingsRequest(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/git-deploy-settings", 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 +} + +// NewUpdateProjectGitDeploySettingsRequest calls the generic UpdateProjectGitDeploySettings builder with application/json body +func NewUpdateProjectGitDeploySettingsRequest(server string, id ProjectId, body UpdateProjectGitDeploySettingsJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewUpdateProjectGitDeploySettingsRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewUpdateProjectGitDeploySettingsRequestWithBody generates requests for UpdateProjectGitDeploySettings with any type of body +func NewUpdateProjectGitDeploySettingsRequestWithBody(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-deploy-settings", 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 +} + // NewGetProjectHealthRequest generates requests for GetProjectHealth func NewGetProjectHealthRequest(server string, id ProjectId) (*http.Request, error) { var err error @@ -16592,6 +19464,54 @@ func NewListProjectSchedulersRequest(server string, id ProjectId, params *ListPr } + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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) } @@ -16665,6 +19585,54 @@ func NewListServiceKeysRequest(server string, id ProjectId, params *ListServiceK } + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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) } @@ -16850,7 +19818,7 @@ func NewRegenerateServiceKeyRequest(server string, id ProjectId, keyId openapi_t } // NewListStorageBucketsRequest generates requests for ListStorageBuckets -func NewListStorageBucketsRequest(server string, id ProjectId) (*http.Request, error) { +func NewListStorageBucketsRequest(server string, id ProjectId, params *ListStorageBucketsParams) (*http.Request, error) { var err error var pathParam0 string @@ -16875,6 +19843,81 @@ func NewListStorageBucketsRequest(server string, id ProjectId) (*http.Request, e 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.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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 @@ -17280,126 +20323,33 @@ func NewListStorageObjectsAdminRequest(server string, id ProjectId, params *List } - 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 -} - -// NewGetStorageStatsRequest generates requests for GetStorageStats -func NewGetStorageStatsRequest(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/storage/stats", 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 -} - -// NewGetProjectUsageRequest generates requests for GetProjectUsage -func NewGetProjectUsageRequest(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/usage", 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 -} - -// NewListVariablesRequest generates requests for ListVariables -func NewListVariablesRequest(server string, id ProjectId, params *ListVariablesParams) (*http.Request, error) { - var err error - - var pathParam0 string + if params.Cursor != nil { - pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) - if err != nil { - return nil, err - } + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } + } - operationPath := fmt.Sprintf("/projects/%s/variables", pathParam0) - if operationPath[0] == '/' { - operationPath = "." + operationPath - } + if params.EndingBefore != nil { - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 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.Page != nil { + if params.Offset != nil { - if queryFrag, err := runtime.StyleParamWithOptions("form", true, "page", *params.Page, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { return nil, err } else { for _, qp := range strings.Split(queryFrag, "&") { @@ -17409,9 +20359,198 @@ func NewListVariablesRequest(server string, id ProjectId, params *ListVariablesP } - if params.Limit != nil { + if params.Search != nil { - if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, 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 +} + +// NewGetStorageStatsRequest generates requests for GetStorageStats +func NewGetStorageStatsRequest(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/storage/stats", 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 +} + +// NewGetProjectUsageRequest generates requests for GetProjectUsage +func NewGetProjectUsageRequest(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/usage", 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 +} + +// NewListVariablesRequest generates requests for ListVariables +func NewListVariablesRequest(server string, id ProjectId, params *ListVariablesParams) (*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/variables", 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.Page != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "page", *params.Page, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Cursor != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "cursor", *params.Cursor, 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 params.EndingBefore != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "ending_before", *params.EndingBefore, 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 params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "offset", *params.Offset, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Search != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "search", *params.Search, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: ""}); err != nil { return nil, err } else { for _, qp := range strings.Split(queryFrag, "&") { @@ -18167,6 +21306,208 @@ func NewUpdateStorageObjectVisibilityRequestWithBody(server string, bucketName B return req, nil } +// NewStartGitConnectRequest generates requests for StartGitConnect +func NewStartGitConnectRequest(server string, params *StartGitConnectParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/user/git/connect") + 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.Provider != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "provider", *params.Provider, 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 params.Redirect != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "redirect", *params.Redirect, 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.MethodPost, queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewListGitConnectionsRequest generates requests for ListGitConnections +func NewListGitConnectionsRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/user/git/connections") + 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 +} + +// NewDeleteGitConnectionRequest generates requests for DeleteGitConnection +func NewDeleteGitConnectionRequest(server string, connectionId openapi_types.UUID) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "connectionId", connectionId, 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("/user/git/connections/%s", 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 +} + +// NewListGitInstallationsRequest generates requests for ListGitInstallations +func NewListGitInstallationsRequest(server string, connectionId openapi_types.UUID) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "connectionId", connectionId, 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("/user/git/connections/%s/installations", 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 +} + +// NewListGitInstallationRepositoriesRequest generates requests for ListGitInstallationRepositories +func NewListGitInstallationRepositoriesRequest(server string, connectionId openapi_types.UUID, installationId int64) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "connectionId", connectionId, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + var pathParam1 string + + pathParam1, err = runtime.StyleParamWithOptions("simple", false, "installationId", installationId, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "integer", Format: "int64"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/user/git/connections/%s/installations/%s/repositories", 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 +} + func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error { for _, r := range c.RequestEditors { if err := r(ctx, req); err != nil { @@ -18240,6 +21581,11 @@ type ClientWithResponsesInterface interface { AuthLogoutWithResponse(ctx context.Context, body AuthLogoutJSONRequestBody, reqEditors ...RequestEditorFn) (*AuthLogoutClientResponse, error) + // AuthOAuthExchangeWithBodyWithResponse request with any body + AuthOAuthExchangeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AuthOAuthExchangeClientResponse, error) + + AuthOAuthExchangeWithResponse(ctx context.Context, body AuthOAuthExchangeJSONRequestBody, reqEditors ...RequestEditorFn) (*AuthOAuthExchangeClientResponse, error) + // AuthListOAuthProvidersWithResponse request AuthListOAuthProvidersWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*AuthListOAuthProvidersClientResponse, error) @@ -18255,7 +21601,7 @@ type ClientWithResponsesInterface interface { AuthOAuthCallbackWithResponse(ctx context.Context, provider AuthOAuthCallbackParamsProvider, params *AuthOAuthCallbackParams, reqEditors ...RequestEditorFn) (*AuthOAuthCallbackClientResponse, error) // AuthLinkOAuthProviderWithResponse request - AuthLinkOAuthProviderWithResponse(ctx context.Context, provider AuthLinkOAuthProviderParamsProvider, reqEditors ...RequestEditorFn) (*AuthLinkOAuthProviderClientResponse, error) + AuthLinkOAuthProviderWithResponse(ctx context.Context, provider AuthLinkOAuthProviderParamsProvider, params *AuthLinkOAuthProviderParams, reqEditors ...RequestEditorFn) (*AuthLinkOAuthProviderClientResponse, error) // RefreshOAuthProviderTokenWithResponse request RefreshOAuthProviderTokenWithResponse(ctx context.Context, provider RefreshOAuthProviderTokenParamsProvider, reqEditors ...RequestEditorFn) (*RefreshOAuthProviderTokenClientResponse, error) @@ -18266,6 +21612,9 @@ type ClientWithResponsesInterface interface { // AuthUnlinkOAuthProviderWithResponse request AuthUnlinkOAuthProviderWithResponse(ctx context.Context, provider AuthUnlinkOAuthProviderParamsProvider, reqEditors ...RequestEditorFn) (*AuthUnlinkOAuthProviderClientResponse, error) + // AuthGetPasswordPolicyWithResponse request + AuthGetPasswordPolicyWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*AuthGetPasswordPolicyClientResponse, error) + // AuthPlatformExchangeWithBodyWithResponse request with any body AuthPlatformExchangeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AuthPlatformExchangeClientResponse, error) @@ -18397,9 +21746,31 @@ type ClientWithResponsesInterface interface { InvokeFunctionWithResponse(ctx context.Context, functionId FunctionId, body InvokeFunctionJSONRequestBody, reqEditors ...RequestEditorFn) (*InvokeFunctionClientResponse, error) + // GitConnectCallbackWithResponse request + GitConnectCallbackWithResponse(ctx context.Context, params *GitConnectCallbackParams, reqEditors ...RequestEditorFn) (*GitConnectCallbackClientResponse, error) + // HealthCheckWithResponse request HealthCheckWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*HealthCheckClientResponse, error) + // ForceReleaseProjectLockWithResponse request + ForceReleaseProjectLockWithResponse(ctx context.Context, key LockKey, params *ForceReleaseProjectLockParams, reqEditors ...RequestEditorFn) (*ForceReleaseProjectLockClientResponse, error) + + // GetProjectLockWithResponse request + GetProjectLockWithResponse(ctx context.Context, key LockKey, params *GetProjectLockParams, reqEditors ...RequestEditorFn) (*GetProjectLockClientResponse, error) + + // ReleaseProjectLockWithResponse request + ReleaseProjectLockWithResponse(ctx context.Context, key LockKey, params *ReleaseProjectLockParams, reqEditors ...RequestEditorFn) (*ReleaseProjectLockClientResponse, error) + + // RenewProjectLockWithBodyWithResponse request with any body + RenewProjectLockWithBodyWithResponse(ctx context.Context, key LockKey, params *RenewProjectLockParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*RenewProjectLockClientResponse, error) + + RenewProjectLockWithResponse(ctx context.Context, key LockKey, params *RenewProjectLockParams, body RenewProjectLockJSONRequestBody, reqEditors ...RequestEditorFn) (*RenewProjectLockClientResponse, error) + + // AcquireProjectLockWithBodyWithResponse request with any body + AcquireProjectLockWithBodyWithResponse(ctx context.Context, key LockKey, params *AcquireProjectLockParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AcquireProjectLockClientResponse, error) + + AcquireProjectLockWithResponse(ctx context.Context, key LockKey, params *AcquireProjectLockParams, body AcquireProjectLockJSONRequestBody, reqEditors ...RequestEditorFn) (*AcquireProjectLockClientResponse, error) + // ListProjectsWithResponse request ListProjectsWithResponse(ctx context.Context, params *ListProjectsParams, reqEditors ...RequestEditorFn) (*ListProjectsClientResponse, error) @@ -18420,7 +21791,7 @@ type ClientWithResponsesInterface interface { UpdateProjectWithResponse(ctx context.Context, id ProjectId, body UpdateProjectJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateProjectClientResponse, error) // ListAnonKeysWithResponse request - ListAnonKeysWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*ListAnonKeysClientResponse, error) + ListAnonKeysWithResponse(ctx context.Context, id ProjectId, params *ListAnonKeysParams, reqEditors ...RequestEditorFn) (*ListAnonKeysClientResponse, error) // CreateAnonKeyWithBodyWithResponse request with any body CreateAnonKeyWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateAnonKeyClientResponse, error) @@ -18474,6 +21845,9 @@ type ClientWithResponsesInterface interface { // RenderManagedAuthPageWithResponse request RenderManagedAuthPageWithResponse(ctx context.Context, id ProjectId, pageType HostedRenderablePageType, reqEditors ...RequestEditorFn) (*RenderManagedAuthPageClientResponse, error) + // GetAuthInsightsWithResponse request + GetAuthInsightsWithResponse(ctx context.Context, id ProjectId, params *GetAuthInsightsParams, reqEditors ...RequestEditorFn) (*GetAuthInsightsClientResponse, error) + // GetAuthMethodsWithResponse request GetAuthMethodsWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetAuthMethodsClientResponse, error) @@ -18547,6 +21921,9 @@ type ClientWithResponsesInterface interface { // ListProjectDeploymentsWithResponse request ListProjectDeploymentsWithResponse(ctx context.Context, id ProjectId, params *ListProjectDeploymentsParams, reqEditors ...RequestEditorFn) (*ListProjectDeploymentsClientResponse, error) + // SummarizeProjectDeploymentsWithResponse request + SummarizeProjectDeploymentsWithResponse(ctx context.Context, id ProjectId, params *SummarizeProjectDeploymentsParams, reqEditors ...RequestEditorFn) (*SummarizeProjectDeploymentsClientResponse, error) + // ListProjectCustomDomainsWithResponse request ListProjectCustomDomainsWithResponse(ctx context.Context, id ProjectId, params *ListProjectCustomDomainsParams, reqEditors ...RequestEditorFn) (*ListProjectCustomDomainsClientResponse, error) @@ -18643,6 +22020,25 @@ type ClientWithResponsesInterface interface { UpdateFunctionSchedulerWithResponse(ctx context.Context, id ProjectId, functionId FunctionId, schedulerId SchedulerId, body UpdateFunctionSchedulerJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateFunctionSchedulerClientResponse, error) + // DisconnectProjectGitWithResponse request + DisconnectProjectGitWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*DisconnectProjectGitClientResponse, error) + + // GetProjectGitConnectionWithResponse request + GetProjectGitConnectionWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetProjectGitConnectionClientResponse, error) + + // ConnectProjectGitWithBodyWithResponse request with any body + ConnectProjectGitWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ConnectProjectGitClientResponse, error) + + ConnectProjectGitWithResponse(ctx context.Context, id ProjectId, body ConnectProjectGitJSONRequestBody, reqEditors ...RequestEditorFn) (*ConnectProjectGitClientResponse, error) + + // GetProjectGitDeploySettingsWithResponse request + GetProjectGitDeploySettingsWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetProjectGitDeploySettingsClientResponse, error) + + // UpdateProjectGitDeploySettingsWithBodyWithResponse request with any body + UpdateProjectGitDeploySettingsWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateProjectGitDeploySettingsClientResponse, error) + + UpdateProjectGitDeploySettingsWithResponse(ctx context.Context, id ProjectId, body UpdateProjectGitDeploySettingsJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateProjectGitDeploySettingsClientResponse, error) + // GetProjectHealthWithResponse request GetProjectHealthWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetProjectHealthClientResponse, error) @@ -18729,7 +22125,7 @@ type ClientWithResponsesInterface interface { RegenerateServiceKeyWithResponse(ctx context.Context, id ProjectId, keyId openapi_types.UUID, reqEditors ...RequestEditorFn) (*RegenerateServiceKeyClientResponse, error) // ListStorageBucketsWithResponse request - ListStorageBucketsWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*ListStorageBucketsClientResponse, error) + ListStorageBucketsWithResponse(ctx context.Context, id ProjectId, params *ListStorageBucketsParams, reqEditors ...RequestEditorFn) (*ListStorageBucketsClientResponse, error) // CreateStorageBucketWithBodyWithResponse request with any body CreateStorageBucketWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateStorageBucketClientResponse, error) @@ -18820,6 +22216,21 @@ type ClientWithResponsesInterface interface { UpdateStorageObjectVisibilityWithBodyWithResponse(ctx context.Context, bucketName BucketName, path string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateStorageObjectVisibilityClientResponse, error) UpdateStorageObjectVisibilityWithResponse(ctx context.Context, bucketName BucketName, path string, body UpdateStorageObjectVisibilityJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateStorageObjectVisibilityClientResponse, error) + + // StartGitConnectWithResponse request + StartGitConnectWithResponse(ctx context.Context, params *StartGitConnectParams, reqEditors ...RequestEditorFn) (*StartGitConnectClientResponse, error) + + // ListGitConnectionsWithResponse request + ListGitConnectionsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListGitConnectionsClientResponse, error) + + // DeleteGitConnectionWithResponse request + DeleteGitConnectionWithResponse(ctx context.Context, connectionId openapi_types.UUID, reqEditors ...RequestEditorFn) (*DeleteGitConnectionClientResponse, error) + + // ListGitInstallationsWithResponse request + ListGitInstallationsWithResponse(ctx context.Context, connectionId openapi_types.UUID, reqEditors ...RequestEditorFn) (*ListGitInstallationsClientResponse, error) + + // ListGitInstallationRepositoriesWithResponse request + ListGitInstallationRepositoriesWithResponse(ctx context.Context, connectionId openapi_types.UUID, installationId int64, reqEditors ...RequestEditorFn) (*ListGitInstallationRepositoriesClientResponse, error) } type AuthConfirmEmailClientResponse struct { @@ -19013,6 +22424,36 @@ func (r AuthLogoutClientResponse) ContentType() string { return "" } +type AuthOAuthExchangeClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *AuthTokenResponse +} + +// Status returns HTTPResponse.Status +func (r AuthOAuthExchangeClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r AuthOAuthExchangeClientResponse) 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 AuthOAuthExchangeClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + type AuthListOAuthProvidersClientResponse struct { Body []byte HTTPResponse *http.Response @@ -19149,6 +22590,7 @@ type AuthLinkOAuthProviderClientResponse struct { JSON200 *struct { AuthorizationUrl *string `json:"authorization_url,omitempty"` } + JSON400 *Error JSON401 *Error JSON404 *Error JSON409 *Error @@ -19283,6 +22725,38 @@ func (r AuthUnlinkOAuthProviderClientResponse) ContentType() string { return "" } +type AuthGetPasswordPolicyClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *AuthPasswordPolicy + JSON401 *Error + JSON404 *Error +} + +// Status returns HTTPResponse.Status +func (r AuthGetPasswordPolicyClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r AuthGetPasswordPolicyClientResponse) 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 AuthGetPasswordPolicyClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + type AuthPlatformExchangeClientResponse struct { Body []byte HTTPResponse *http.Response @@ -19385,6 +22859,7 @@ type AuthResetPasswordClientResponse struct { JSON200 *struct { Message *string `json:"message,omitempty"` } + JSON503 *Error } // Status returns HTTPResponse.Status @@ -19445,6 +22920,7 @@ type AuthSignupClientResponse struct { Body []byte HTTPResponse *http.Response JSON201 *AuthSignupResponse + JSON503 *Error } // Status returns HTTPResponse.Status @@ -19542,6 +23018,7 @@ type AuthUpdateUserClientResponse struct { } JSON400 *Error JSON401 *Error + JSON503 *Error } // Status returns HTTPResponse.Status @@ -19680,6 +23157,7 @@ type AuthConvertAnonymousClientResponse struct { JSON200 *struct { User *AuthUser `json:"user,omitempty"` } + JSON503 *Error } // Status returns HTTPResponse.Status @@ -20410,6 +23888,39 @@ func (r InvokeFunctionClientResponse) ContentType() string { return "" } +type GitConnectCallbackClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON400 *Error + JSON429 *Error + JSON500 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r GitConnectCallbackClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GitConnectCallbackClientResponse) 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 GitConnectCallbackClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + type HealthCheckClientResponse struct { Body []byte HTTPResponse *http.Response @@ -20439,6 +23950,182 @@ func (r HealthCheckClientResponse) ContentType() string { return "" } +type ForceReleaseProjectLockClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON429 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r ForceReleaseProjectLockClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ForceReleaseProjectLockClientResponse) 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 ForceReleaseProjectLockClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type GetProjectLockClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ProjectLockState + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON429 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r GetProjectLockClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetProjectLockClientResponse) 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 GetProjectLockClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type ReleaseProjectLockClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON409 *Error + JSON429 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r ReleaseProjectLockClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ReleaseProjectLockClientResponse) 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 ReleaseProjectLockClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type RenewProjectLockClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ProjectLockLease + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON409 *Error + JSON429 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r RenewProjectLockClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r RenewProjectLockClientResponse) 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 RenewProjectLockClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type AcquireProjectLockClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *ProjectLockLease + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON409 *Error + JSON429 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r AcquireProjectLockClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r AcquireProjectLockClientResponse) 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 AcquireProjectLockClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + type ListProjectsClientResponse struct { Body []byte HTTPResponse *http.Response @@ -20601,6 +24288,18 @@ type ListAnonKeysClientResponse struct { HTTPResponse *http.Response JSON200 *struct { Data *[]AnonKey `json:"data,omitempty"` + + // HasMore Whether a next page exists. + HasMore *bool `json:"has_more,omitempty"` + + // NextCursor Opaque cursor for the next page (cursor pagination only) + NextCursor *string `json:"next_cursor,omitempty"` + + // PrevCursor Opaque cursor for the previous page (cursor pagination only). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + + // Total Total number of items matching the query (so the UI can render numbered pages). + Total *int `json:"total,omitempty"` } } @@ -21048,6 +24747,41 @@ func (r RenderManagedAuthPageClientResponse) ContentType() string { return "" } +type GetAuthInsightsClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *AuthInsightsResponse + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r GetAuthInsightsClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetAuthInsightsClientResponse) 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 GetAuthInsightsClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + type GetAuthMethodsClientResponse struct { Body []byte HTTPResponse *http.Response @@ -21743,6 +25477,40 @@ func (r ListProjectDeploymentsClientResponse) ContentType() string { return "" } +type SummarizeProjectDeploymentsClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ProjectDeploymentSummary + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r SummarizeProjectDeploymentsClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SummarizeProjectDeploymentsClientResponse) 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 SummarizeProjectDeploymentsClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + type ListProjectCustomDomainsClientResponse struct { Body []byte HTTPResponse *http.Response @@ -22661,6 +26429,178 @@ func (r UpdateFunctionSchedulerClientResponse) ContentType() string { return "" } +type DisconnectProjectGitClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r DisconnectProjectGitClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DisconnectProjectGitClientResponse) 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 DisconnectProjectGitClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type GetProjectGitConnectionClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ProjectGitConnection + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r GetProjectGitConnectionClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetProjectGitConnectionClientResponse) 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 GetProjectGitConnectionClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type ConnectProjectGitClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ProjectGitConnection + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r ConnectProjectGitClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ConnectProjectGitClientResponse) 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 ConnectProjectGitClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type GetProjectGitDeploySettingsClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ProjectGitDeploySettings + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r GetProjectGitDeploySettingsClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetProjectGitDeploySettingsClientResponse) 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 GetProjectGitDeploySettingsClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type UpdateProjectGitDeploySettingsClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ProjectGitDeploySettings + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r UpdateProjectGitDeploySettingsClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r UpdateProjectGitDeploySettingsClientResponse) 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 UpdateProjectGitDeploySettingsClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + type GetProjectHealthClientResponse struct { Body []byte HTTPResponse *http.Response @@ -23396,7 +27336,7 @@ func (r RegenerateServiceKeyClientResponse) ContentType() string { type ListStorageBucketsClientResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *[]StorageBucket + JSON200 *ListStorageBuckets200JSONResponseBody } // Status returns HTTPResponse.Status @@ -23638,8 +27578,14 @@ type ListStorageObjectsAdminClientResponse struct { Data *[]StorageObjectWithBucket `json:"data,omitempty"` HasMore *bool `json:"has_more,omitempty"` Limit *int `json:"limit,omitempty"` - Page *int `json:"page,omitempty"` - Total *int `json:"total,omitempty"` + + // NextCursor Opaque cursor for the next page (cursor pagination only) + NextCursor *string `json:"next_cursor,omitempty"` + Page *int `json:"page,omitempty"` + + // PrevCursor Opaque cursor for the previous page (cursor pagination only). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + Total *int `json:"total,omitempty"` } } @@ -24159,6 +28105,177 @@ func (r UpdateStorageObjectVisibilityClientResponse) ContentType() string { return "" } +type StartGitConnectClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *GitConnectStartResponse + JSON400 *Error + JSON401 *Error + JSON500 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r StartGitConnectClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r StartGitConnectClientResponse) 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 StartGitConnectClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type ListGitConnectionsClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *GitConnectionsResponse + JSON401 *Error + JSON500 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r ListGitConnectionsClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ListGitConnectionsClientResponse) 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 ListGitConnectionsClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type DeleteGitConnectionClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON400 *Error + JSON401 *Error + JSON404 *Error + JSON500 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteGitConnectionClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteGitConnectionClientResponse) 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 DeleteGitConnectionClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type ListGitInstallationsClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *GitInstallationsResponse + JSON400 *Error + JSON401 *Error + JSON404 *Error + JSON500 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r ListGitInstallationsClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ListGitInstallationsClientResponse) 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 ListGitInstallationsClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type ListGitInstallationRepositoriesClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *GitRepositoriesResponse + JSON400 *Error + JSON401 *Error + JSON404 *Error + JSON500 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r ListGitInstallationRepositoriesClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ListGitInstallationRepositoriesClientResponse) 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 ListGitInstallationRepositoriesClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + // AuthConfirmEmailWithBodyWithResponse request with arbitrary body returning *AuthConfirmEmailClientResponse func (c *ClientWithResponses) AuthConfirmEmailWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AuthConfirmEmailClientResponse, error) { rsp, err := c.AuthConfirmEmailWithBody(ctx, contentType, body, reqEditors...) @@ -24261,6 +28378,23 @@ func (c *ClientWithResponses) AuthLogoutWithResponse(ctx context.Context, body A return ParseAuthLogoutClientResponse(rsp) } +// AuthOAuthExchangeWithBodyWithResponse request with arbitrary body returning *AuthOAuthExchangeClientResponse +func (c *ClientWithResponses) AuthOAuthExchangeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AuthOAuthExchangeClientResponse, error) { + rsp, err := c.AuthOAuthExchangeWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseAuthOAuthExchangeClientResponse(rsp) +} + +func (c *ClientWithResponses) AuthOAuthExchangeWithResponse(ctx context.Context, body AuthOAuthExchangeJSONRequestBody, reqEditors ...RequestEditorFn) (*AuthOAuthExchangeClientResponse, error) { + rsp, err := c.AuthOAuthExchange(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseAuthOAuthExchangeClientResponse(rsp) +} + // AuthListOAuthProvidersWithResponse request returning *AuthListOAuthProvidersClientResponse func (c *ClientWithResponses) AuthListOAuthProvidersWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*AuthListOAuthProvidersClientResponse, error) { rsp, err := c.AuthListOAuthProviders(ctx, reqEditors...) @@ -24306,8 +28440,8 @@ func (c *ClientWithResponses) AuthOAuthCallbackWithResponse(ctx context.Context, } // AuthLinkOAuthProviderWithResponse request returning *AuthLinkOAuthProviderClientResponse -func (c *ClientWithResponses) AuthLinkOAuthProviderWithResponse(ctx context.Context, provider AuthLinkOAuthProviderParamsProvider, reqEditors ...RequestEditorFn) (*AuthLinkOAuthProviderClientResponse, error) { - rsp, err := c.AuthLinkOAuthProvider(ctx, provider, reqEditors...) +func (c *ClientWithResponses) AuthLinkOAuthProviderWithResponse(ctx context.Context, provider AuthLinkOAuthProviderParamsProvider, params *AuthLinkOAuthProviderParams, reqEditors ...RequestEditorFn) (*AuthLinkOAuthProviderClientResponse, error) { + rsp, err := c.AuthLinkOAuthProvider(ctx, provider, params, reqEditors...) if err != nil { return nil, err } @@ -24341,6 +28475,15 @@ func (c *ClientWithResponses) AuthUnlinkOAuthProviderWithResponse(ctx context.Co return ParseAuthUnlinkOAuthProviderClientResponse(rsp) } +// AuthGetPasswordPolicyWithResponse request returning *AuthGetPasswordPolicyClientResponse +func (c *ClientWithResponses) AuthGetPasswordPolicyWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*AuthGetPasswordPolicyClientResponse, error) { + rsp, err := c.AuthGetPasswordPolicy(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseAuthGetPasswordPolicyClientResponse(rsp) +} + // AuthPlatformExchangeWithBodyWithResponse request with arbitrary body returning *AuthPlatformExchangeClientResponse func (c *ClientWithResponses) AuthPlatformExchangeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AuthPlatformExchangeClientResponse, error) { rsp, err := c.AuthPlatformExchangeWithBody(ctx, contentType, body, reqEditors...) @@ -24766,6 +28909,15 @@ func (c *ClientWithResponses) InvokeFunctionWithResponse(ctx context.Context, fu return ParseInvokeFunctionClientResponse(rsp) } +// GitConnectCallbackWithResponse request returning *GitConnectCallbackClientResponse +func (c *ClientWithResponses) GitConnectCallbackWithResponse(ctx context.Context, params *GitConnectCallbackParams, reqEditors ...RequestEditorFn) (*GitConnectCallbackClientResponse, error) { + rsp, err := c.GitConnectCallback(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGitConnectCallbackClientResponse(rsp) +} + // HealthCheckWithResponse request returning *HealthCheckClientResponse func (c *ClientWithResponses) HealthCheckWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*HealthCheckClientResponse, error) { rsp, err := c.HealthCheck(ctx, reqEditors...) @@ -24775,6 +28927,67 @@ func (c *ClientWithResponses) HealthCheckWithResponse(ctx context.Context, reqEd return ParseHealthCheckClientResponse(rsp) } +// ForceReleaseProjectLockWithResponse request returning *ForceReleaseProjectLockClientResponse +func (c *ClientWithResponses) ForceReleaseProjectLockWithResponse(ctx context.Context, key LockKey, params *ForceReleaseProjectLockParams, reqEditors ...RequestEditorFn) (*ForceReleaseProjectLockClientResponse, error) { + rsp, err := c.ForceReleaseProjectLock(ctx, key, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseForceReleaseProjectLockClientResponse(rsp) +} + +// GetProjectLockWithResponse request returning *GetProjectLockClientResponse +func (c *ClientWithResponses) GetProjectLockWithResponse(ctx context.Context, key LockKey, params *GetProjectLockParams, reqEditors ...RequestEditorFn) (*GetProjectLockClientResponse, error) { + rsp, err := c.GetProjectLock(ctx, key, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetProjectLockClientResponse(rsp) +} + +// ReleaseProjectLockWithResponse request returning *ReleaseProjectLockClientResponse +func (c *ClientWithResponses) ReleaseProjectLockWithResponse(ctx context.Context, key LockKey, params *ReleaseProjectLockParams, reqEditors ...RequestEditorFn) (*ReleaseProjectLockClientResponse, error) { + rsp, err := c.ReleaseProjectLock(ctx, key, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseReleaseProjectLockClientResponse(rsp) +} + +// RenewProjectLockWithBodyWithResponse request with arbitrary body returning *RenewProjectLockClientResponse +func (c *ClientWithResponses) RenewProjectLockWithBodyWithResponse(ctx context.Context, key LockKey, params *RenewProjectLockParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*RenewProjectLockClientResponse, error) { + rsp, err := c.RenewProjectLockWithBody(ctx, key, params, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseRenewProjectLockClientResponse(rsp) +} + +func (c *ClientWithResponses) RenewProjectLockWithResponse(ctx context.Context, key LockKey, params *RenewProjectLockParams, body RenewProjectLockJSONRequestBody, reqEditors ...RequestEditorFn) (*RenewProjectLockClientResponse, error) { + rsp, err := c.RenewProjectLock(ctx, key, params, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseRenewProjectLockClientResponse(rsp) +} + +// AcquireProjectLockWithBodyWithResponse request with arbitrary body returning *AcquireProjectLockClientResponse +func (c *ClientWithResponses) AcquireProjectLockWithBodyWithResponse(ctx context.Context, key LockKey, params *AcquireProjectLockParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AcquireProjectLockClientResponse, error) { + rsp, err := c.AcquireProjectLockWithBody(ctx, key, params, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseAcquireProjectLockClientResponse(rsp) +} + +func (c *ClientWithResponses) AcquireProjectLockWithResponse(ctx context.Context, key LockKey, params *AcquireProjectLockParams, body AcquireProjectLockJSONRequestBody, reqEditors ...RequestEditorFn) (*AcquireProjectLockClientResponse, error) { + rsp, err := c.AcquireProjectLock(ctx, key, params, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseAcquireProjectLockClientResponse(rsp) +} + // ListProjectsWithResponse request returning *ListProjectsClientResponse func (c *ClientWithResponses) ListProjectsWithResponse(ctx context.Context, params *ListProjectsParams, reqEditors ...RequestEditorFn) (*ListProjectsClientResponse, error) { rsp, err := c.ListProjects(ctx, params, reqEditors...) @@ -24837,8 +29050,8 @@ func (c *ClientWithResponses) UpdateProjectWithResponse(ctx context.Context, id } // ListAnonKeysWithResponse request returning *ListAnonKeysClientResponse -func (c *ClientWithResponses) ListAnonKeysWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*ListAnonKeysClientResponse, error) { - rsp, err := c.ListAnonKeys(ctx, id, reqEditors...) +func (c *ClientWithResponses) ListAnonKeysWithResponse(ctx context.Context, id ProjectId, params *ListAnonKeysParams, reqEditors ...RequestEditorFn) (*ListAnonKeysClientResponse, error) { + rsp, err := c.ListAnonKeys(ctx, id, params, reqEditors...) if err != nil { return nil, err } @@ -25011,6 +29224,15 @@ func (c *ClientWithResponses) RenderManagedAuthPageWithResponse(ctx context.Cont return ParseRenderManagedAuthPageClientResponse(rsp) } +// GetAuthInsightsWithResponse request returning *GetAuthInsightsClientResponse +func (c *ClientWithResponses) GetAuthInsightsWithResponse(ctx context.Context, id ProjectId, params *GetAuthInsightsParams, reqEditors ...RequestEditorFn) (*GetAuthInsightsClientResponse, error) { + rsp, err := c.GetAuthInsights(ctx, id, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetAuthInsightsClientResponse(rsp) +} + // GetAuthMethodsWithResponse request returning *GetAuthMethodsClientResponse func (c *ClientWithResponses) GetAuthMethodsWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetAuthMethodsClientResponse, error) { rsp, err := c.GetAuthMethods(ctx, id, reqEditors...) @@ -25240,6 +29462,15 @@ func (c *ClientWithResponses) ListProjectDeploymentsWithResponse(ctx context.Con return ParseListProjectDeploymentsClientResponse(rsp) } +// SummarizeProjectDeploymentsWithResponse request returning *SummarizeProjectDeploymentsClientResponse +func (c *ClientWithResponses) SummarizeProjectDeploymentsWithResponse(ctx context.Context, id ProjectId, params *SummarizeProjectDeploymentsParams, reqEditors ...RequestEditorFn) (*SummarizeProjectDeploymentsClientResponse, error) { + rsp, err := c.SummarizeProjectDeployments(ctx, id, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseSummarizeProjectDeploymentsClientResponse(rsp) +} + // ListProjectCustomDomainsWithResponse request returning *ListProjectCustomDomainsClientResponse func (c *ClientWithResponses) ListProjectCustomDomainsWithResponse(ctx context.Context, id ProjectId, params *ListProjectCustomDomainsParams, reqEditors ...RequestEditorFn) (*ListProjectCustomDomainsClientResponse, error) { rsp, err := c.ListProjectCustomDomains(ctx, id, params, reqEditors...) @@ -25540,6 +29771,67 @@ func (c *ClientWithResponses) UpdateFunctionSchedulerWithResponse(ctx context.Co return ParseUpdateFunctionSchedulerClientResponse(rsp) } +// DisconnectProjectGitWithResponse request returning *DisconnectProjectGitClientResponse +func (c *ClientWithResponses) DisconnectProjectGitWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*DisconnectProjectGitClientResponse, error) { + rsp, err := c.DisconnectProjectGit(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseDisconnectProjectGitClientResponse(rsp) +} + +// GetProjectGitConnectionWithResponse request returning *GetProjectGitConnectionClientResponse +func (c *ClientWithResponses) GetProjectGitConnectionWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetProjectGitConnectionClientResponse, error) { + rsp, err := c.GetProjectGitConnection(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetProjectGitConnectionClientResponse(rsp) +} + +// ConnectProjectGitWithBodyWithResponse request with arbitrary body returning *ConnectProjectGitClientResponse +func (c *ClientWithResponses) ConnectProjectGitWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ConnectProjectGitClientResponse, error) { + rsp, err := c.ConnectProjectGitWithBody(ctx, id, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseConnectProjectGitClientResponse(rsp) +} + +func (c *ClientWithResponses) ConnectProjectGitWithResponse(ctx context.Context, id ProjectId, body ConnectProjectGitJSONRequestBody, reqEditors ...RequestEditorFn) (*ConnectProjectGitClientResponse, error) { + rsp, err := c.ConnectProjectGit(ctx, id, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseConnectProjectGitClientResponse(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...) + if err != nil { + return nil, err + } + return ParseGetProjectGitDeploySettingsClientResponse(rsp) +} + +// UpdateProjectGitDeploySettingsWithBodyWithResponse request with arbitrary body returning *UpdateProjectGitDeploySettingsClientResponse +func (c *ClientWithResponses) UpdateProjectGitDeploySettingsWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateProjectGitDeploySettingsClientResponse, error) { + rsp, err := c.UpdateProjectGitDeploySettingsWithBody(ctx, id, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseUpdateProjectGitDeploySettingsClientResponse(rsp) +} + +func (c *ClientWithResponses) UpdateProjectGitDeploySettingsWithResponse(ctx context.Context, id ProjectId, body UpdateProjectGitDeploySettingsJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateProjectGitDeploySettingsClientResponse, error) { + rsp, err := c.UpdateProjectGitDeploySettings(ctx, id, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseUpdateProjectGitDeploySettingsClientResponse(rsp) +} + // GetProjectHealthWithResponse request returning *GetProjectHealthClientResponse func (c *ClientWithResponses) GetProjectHealthWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetProjectHealthClientResponse, error) { rsp, err := c.GetProjectHealth(ctx, id, reqEditors...) @@ -25812,8 +30104,8 @@ func (c *ClientWithResponses) RegenerateServiceKeyWithResponse(ctx context.Conte } // ListStorageBucketsWithResponse request returning *ListStorageBucketsClientResponse -func (c *ClientWithResponses) ListStorageBucketsWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*ListStorageBucketsClientResponse, error) { - rsp, err := c.ListStorageBuckets(ctx, id, reqEditors...) +func (c *ClientWithResponses) ListStorageBucketsWithResponse(ctx context.Context, id ProjectId, params *ListStorageBucketsParams, reqEditors ...RequestEditorFn) (*ListStorageBucketsClientResponse, error) { + rsp, err := c.ListStorageBuckets(ctx, id, params, reqEditors...) if err != nil { return nil, err } @@ -26108,6 +30400,51 @@ func (c *ClientWithResponses) UpdateStorageObjectVisibilityWithResponse(ctx cont return ParseUpdateStorageObjectVisibilityClientResponse(rsp) } +// StartGitConnectWithResponse request returning *StartGitConnectClientResponse +func (c *ClientWithResponses) StartGitConnectWithResponse(ctx context.Context, params *StartGitConnectParams, reqEditors ...RequestEditorFn) (*StartGitConnectClientResponse, error) { + rsp, err := c.StartGitConnect(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseStartGitConnectClientResponse(rsp) +} + +// ListGitConnectionsWithResponse request returning *ListGitConnectionsClientResponse +func (c *ClientWithResponses) ListGitConnectionsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListGitConnectionsClientResponse, error) { + rsp, err := c.ListGitConnections(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseListGitConnectionsClientResponse(rsp) +} + +// DeleteGitConnectionWithResponse request returning *DeleteGitConnectionClientResponse +func (c *ClientWithResponses) DeleteGitConnectionWithResponse(ctx context.Context, connectionId openapi_types.UUID, reqEditors ...RequestEditorFn) (*DeleteGitConnectionClientResponse, error) { + rsp, err := c.DeleteGitConnection(ctx, connectionId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteGitConnectionClientResponse(rsp) +} + +// ListGitInstallationsWithResponse request returning *ListGitInstallationsClientResponse +func (c *ClientWithResponses) ListGitInstallationsWithResponse(ctx context.Context, connectionId openapi_types.UUID, reqEditors ...RequestEditorFn) (*ListGitInstallationsClientResponse, error) { + rsp, err := c.ListGitInstallations(ctx, connectionId, reqEditors...) + if err != nil { + return nil, err + } + return ParseListGitInstallationsClientResponse(rsp) +} + +// ListGitInstallationRepositoriesWithResponse request returning *ListGitInstallationRepositoriesClientResponse +func (c *ClientWithResponses) ListGitInstallationRepositoriesWithResponse(ctx context.Context, connectionId openapi_types.UUID, installationId int64, reqEditors ...RequestEditorFn) (*ListGitInstallationRepositoriesClientResponse, error) { + rsp, err := c.ListGitInstallationRepositories(ctx, connectionId, installationId, reqEditors...) + if err != nil { + return nil, err + } + return ParseListGitInstallationRepositoriesClientResponse(rsp) +} + // ParseAuthConfirmEmailClientResponse parses an HTTP response from a AuthConfirmEmailWithResponse call func ParseAuthConfirmEmailClientResponse(rsp *http.Response) (*AuthConfirmEmailClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) @@ -26296,6 +30633,32 @@ func ParseAuthLogoutClientResponse(rsp *http.Response) (*AuthLogoutClientRespons return response, nil } +// ParseAuthOAuthExchangeClientResponse parses an HTTP response from a AuthOAuthExchangeWithResponse call +func ParseAuthOAuthExchangeClientResponse(rsp *http.Response) (*AuthOAuthExchangeClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &AuthOAuthExchangeClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest AuthTokenResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + // ParseAuthListOAuthProvidersClientResponse parses an HTTP response from a AuthListOAuthProvidersWithResponse call func ParseAuthListOAuthProvidersClientResponse(rsp *http.Response) (*AuthListOAuthProvidersClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) @@ -26454,6 +30817,13 @@ func ParseAuthLinkOAuthProviderClientResponse(rsp *http.Response) (*AuthLinkOAut } 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 { @@ -26615,6 +30985,46 @@ func ParseAuthUnlinkOAuthProviderClientResponse(rsp *http.Response) (*AuthUnlink return response, nil } +// ParseAuthGetPasswordPolicyClientResponse parses an HTTP response from a AuthGetPasswordPolicyWithResponse call +func ParseAuthGetPasswordPolicyClientResponse(rsp *http.Response) (*AuthGetPasswordPolicyClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &AuthGetPasswordPolicyClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest AuthPasswordPolicy + 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 == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + } + + return response, nil +} + // ParseAuthPlatformExchangeClientResponse parses an HTTP response from a AuthPlatformExchangeWithResponse call func ParseAuthPlatformExchangeClientResponse(rsp *http.Response) (*AuthPlatformExchangeClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) @@ -26746,6 +31156,13 @@ func ParseAuthResetPasswordClientResponse(rsp *http.Response) (*AuthResetPasswor } response.JSON200 = &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 @@ -26798,6 +31215,13 @@ func ParseAuthSignupClientResponse(rsp *http.Response) (*AuthSignupClientRespons } response.JSON201 = &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 @@ -26901,6 +31325,13 @@ func ParseAuthUpdateUserClientResponse(rsp *http.Response) (*AuthUpdateUserClien } response.JSON401 = &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 @@ -27071,6 +31502,13 @@ func ParseAuthConvertAnonymousClientResponse(rsp *http.Response) (*AuthConvertAn } response.JSON200 = &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 @@ -27710,121 +32148,515 @@ func ParseQueryDatabaseUpdateClientResponse(rsp *http.Response) (*QueryDatabaseU } 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 == 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 == 429: + var dest DatabaseQueryCapExceeded + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON429 = &dest + + } + + return response, nil +} + +// ParseGetDefaultEmailTemplatesClientResponse parses an HTTP response from a GetDefaultEmailTemplatesWithResponse call +func ParseGetDefaultEmailTemplatesClientResponse(rsp *http.Response) (*GetDefaultEmailTemplatesClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetDefaultEmailTemplatesClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + Data *[]EmailTemplate `json:"data,omitempty"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseGetDefaultEmailTemplateClientResponse parses an HTTP response from a GetDefaultEmailTemplateWithResponse call +func ParseGetDefaultEmailTemplateClientResponse(rsp *http.Response) (*GetDefaultEmailTemplateClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetDefaultEmailTemplateClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest EmailTemplate + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseListFunctionRegionsClientResponse parses an HTTP response from a ListFunctionRegionsWithResponse call +func ParseListFunctionRegionsClientResponse(rsp *http.Response) (*ListFunctionRegionsClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ListFunctionRegionsClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest []FunctionRegion + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseResolveFunctionForInvocationClientResponse parses an HTTP response from a ResolveFunctionForInvocationWithResponse call +func ParseResolveFunctionForInvocationClientResponse(rsp *http.Response) (*ResolveFunctionForInvocationClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ResolveFunctionForInvocationClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ResolveFunctionResponse + 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 + + } + + return response, nil +} + +// ParseListFunctionRuntimesClientResponse parses an HTTP response from a ListFunctionRuntimesWithResponse call +func ParseListFunctionRuntimesClientResponse(rsp *http.Response) (*ListFunctionRuntimesClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ListFunctionRuntimesClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest FunctionRuntimesResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseInvokeFunctionClientResponse parses an HTTP response from a InvokeFunctionWithResponse call +func ParseInvokeFunctionClientResponse(rsp *http.Response) (*InvokeFunctionClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &InvokeFunctionClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest FunctionInvocationResponse + 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 == 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 == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest FunctionInvocationResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGitConnectCallbackClientResponse parses an HTTP response from a GitConnectCallbackWithResponse call +func ParseGitConnectCallbackClientResponse(rsp *http.Response) (*GitConnectCallbackClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GitConnectCallbackClientResponse{ + 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 == 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 == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + } + + return response, nil +} + +// ParseHealthCheckClientResponse parses an HTTP response from a HealthCheckWithResponse call +func ParseHealthCheckClientResponse(rsp *http.Response) (*HealthCheckClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &HealthCheckClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + return response, nil +} + +// ParseForceReleaseProjectLockClientResponse parses an HTTP response from a ForceReleaseProjectLockWithResponse call +func ParseForceReleaseProjectLockClientResponse(rsp *http.Response) (*ForceReleaseProjectLockClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ForceReleaseProjectLockClientResponse{ + 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 == 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 == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + } + + return response, nil +} + +// ParseGetProjectLockClientResponse parses an HTTP response from a GetProjectLockWithResponse call +func ParseGetProjectLockClientResponse(rsp *http.Response) (*GetProjectLockClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetProjectLockClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ProjectLockState + 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 == 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 == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + } + + return response, nil +} + +// ParseReleaseProjectLockClientResponse parses an HTTP response from a ReleaseProjectLockWithResponse call +func ParseReleaseProjectLockClientResponse(rsp *http.Response) (*ReleaseProjectLockClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ReleaseProjectLockClientResponse{ + 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 == 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 == 429: - var dest DatabaseQueryCapExceeded + var dest Error if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON429 = &dest - } - - return response, nil -} - -// ParseGetDefaultEmailTemplatesClientResponse parses an HTTP response from a GetDefaultEmailTemplatesWithResponse call -func ParseGetDefaultEmailTemplatesClientResponse(rsp *http.Response) (*GetDefaultEmailTemplatesClientResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &GetDefaultEmailTemplatesClientResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Data *[]EmailTemplate `json:"data,omitempty"` - } - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParseGetDefaultEmailTemplateClientResponse parses an HTTP response from a GetDefaultEmailTemplateWithResponse call -func ParseGetDefaultEmailTemplateClientResponse(rsp *http.Response) (*GetDefaultEmailTemplateClientResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &GetDefaultEmailTemplateClientResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest EmailTemplate - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParseListFunctionRegionsClientResponse parses an HTTP response from a ListFunctionRegionsWithResponse call -func ParseListFunctionRegionsClientResponse(rsp *http.Response) (*ListFunctionRegionsClientResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &ListFunctionRegionsClientResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest []FunctionRegion + 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.JSON200 = &dest + response.JSON503 = &dest } return response, nil } -// ParseResolveFunctionForInvocationClientResponse parses an HTTP response from a ResolveFunctionForInvocationWithResponse call -func ParseResolveFunctionForInvocationClientResponse(rsp *http.Response) (*ResolveFunctionForInvocationClientResponse, error) { +// ParseRenewProjectLockClientResponse parses an HTTP response from a RenewProjectLockWithResponse call +func ParseRenewProjectLockClientResponse(rsp *http.Response) (*RenewProjectLockClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) defer func() { _ = rsp.Body.Close() }() if err != nil { return nil, err } - response := &ResolveFunctionForInvocationClientResponse{ + response := &RenewProjectLockClientResponse{ Body: bodyBytes, HTTPResponse: rsp, } switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest ResolveFunctionResponse + var dest ProjectLockLease if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -27851,64 +32683,52 @@ func ParseResolveFunctionForInvocationClientResponse(rsp *http.Response) (*Resol } 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 - - } - - return response, nil -} - -// ParseListFunctionRuntimesClientResponse parses an HTTP response from a ListFunctionRuntimesWithResponse call -func ParseListFunctionRuntimesClientResponse(rsp *http.Response) (*ListFunctionRuntimesClientResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } + response.JSON409 = &dest - response := &ListFunctionRuntimesClientResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } + 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 - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest FunctionRuntimesResponse + 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.JSON200 = &dest + response.JSON503 = &dest } return response, nil } -// ParseInvokeFunctionClientResponse parses an HTTP response from a InvokeFunctionWithResponse call -func ParseInvokeFunctionClientResponse(rsp *http.Response) (*InvokeFunctionClientResponse, error) { +// ParseAcquireProjectLockClientResponse parses an HTTP response from a AcquireProjectLockWithResponse call +func ParseAcquireProjectLockClientResponse(rsp *http.Response) (*AcquireProjectLockClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) defer func() { _ = rsp.Body.Close() }() if err != nil { return nil, err } - response := &InvokeFunctionClientResponse{ + response := &AcquireProjectLockClientResponse{ Body: bodyBytes, HTTPResponse: rsp, } switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest FunctionInvocationResponse + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest ProjectLockLease if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } - response.JSON200 = &dest + response.JSON201 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: var dest Error @@ -27931,12 +32751,12 @@ func ParseInvokeFunctionClientResponse(rsp *http.Response) (*InvokeFunctionClien } 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 == 429: var dest Error @@ -27952,29 +32772,6 @@ func ParseInvokeFunctionClientResponse(rsp *http.Response) (*InvokeFunctionClien } response.JSON503 = &dest - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: - var dest FunctionInvocationResponse - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSONDefault = &dest - - } - - return response, nil -} - -// ParseHealthCheckClientResponse parses an HTTP response from a HealthCheckWithResponse call -func ParseHealthCheckClientResponse(rsp *http.Response) (*HealthCheckClientResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &HealthCheckClientResponse{ - Body: bodyBytes, - HTTPResponse: rsp, } return response, nil @@ -28176,6 +32973,18 @@ func ParseListAnonKeysClientResponse(rsp *http.Response) (*ListAnonKeysClientRes case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: var dest struct { Data *[]AnonKey `json:"data,omitempty"` + + // HasMore Whether a next page exists. + HasMore *bool `json:"has_more,omitempty"` + + // NextCursor Opaque cursor for the next page (cursor pagination only) + NextCursor *string `json:"next_cursor,omitempty"` + + // PrevCursor Opaque cursor for the previous page (cursor pagination only). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + + // Total Total number of items matching the query (so the UI can render numbered pages). + Total *int `json:"total,omitempty"` } if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err @@ -28545,6 +33354,67 @@ func ParseRenderManagedAuthPageClientResponse(rsp *http.Response) (*RenderManage return response, nil } +// ParseGetAuthInsightsClientResponse parses an HTTP response from a GetAuthInsightsWithResponse call +func ParseGetAuthInsightsClientResponse(rsp *http.Response) (*GetAuthInsightsClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetAuthInsightsClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest AuthInsightsResponse + 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 +} + // ParseGetAuthMethodsClientResponse parses an HTTP response from a GetAuthMethodsWithResponse call func ParseGetAuthMethodsClientResponse(rsp *http.Response) (*GetAuthMethodsClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) @@ -29258,6 +34128,60 @@ func ParseListProjectDeploymentsClientResponse(rsp *http.Response) (*ListProject return response, nil } +// ParseSummarizeProjectDeploymentsClientResponse parses an HTTP response from a SummarizeProjectDeploymentsWithResponse call +func ParseSummarizeProjectDeploymentsClientResponse(rsp *http.Response) (*SummarizeProjectDeploymentsClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SummarizeProjectDeploymentsClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ProjectDeploymentSummary + 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 == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + + } + + return response, nil +} + // ParseListProjectCustomDomainsClientResponse parses an HTTP response from a ListProjectCustomDomainsWithResponse call func ParseListProjectCustomDomainsClientResponse(rsp *http.Response) (*ListProjectCustomDomainsClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) @@ -30517,6 +35441,290 @@ func ParseUpdateFunctionSchedulerClientResponse(rsp *http.Response) (*UpdateFunc return response, nil } +// ParseDisconnectProjectGitClientResponse parses an HTTP response from a DisconnectProjectGitWithResponse call +func ParseDisconnectProjectGitClientResponse(rsp *http.Response) (*DisconnectProjectGitClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DisconnectProjectGitClientResponse{ + 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 +} + +// ParseGetProjectGitConnectionClientResponse parses an HTTP response from a GetProjectGitConnectionWithResponse call +func ParseGetProjectGitConnectionClientResponse(rsp *http.Response) (*GetProjectGitConnectionClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetProjectGitConnectionClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ProjectGitConnection + 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 +} + +// ParseConnectProjectGitClientResponse parses an HTTP response from a ConnectProjectGitWithResponse call +func ParseConnectProjectGitClientResponse(rsp *http.Response) (*ConnectProjectGitClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ConnectProjectGitClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ProjectGitConnection + 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 + + 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) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetProjectGitDeploySettingsClientResponse{ + 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 == 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 +} + +// 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: + 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 +} + // ParseGetProjectHealthClientResponse parses an HTTP response from a GetProjectHealthWithResponse call func ParseGetProjectHealthClientResponse(rsp *http.Response) (*GetProjectHealthClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) @@ -31370,7 +36578,7 @@ func ParseListStorageBucketsClientResponse(rsp *http.Response) (*ListStorageBuck switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest []StorageBucket + var dest ListStorageBuckets200JSONResponseBody if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -31562,8 +36770,14 @@ func ParseListStorageObjectsAdminClientResponse(rsp *http.Response) (*ListStorag Data *[]StorageObjectWithBucket `json:"data,omitempty"` HasMore *bool `json:"has_more,omitempty"` Limit *int `json:"limit,omitempty"` - Page *int `json:"page,omitempty"` - Total *int `json:"total,omitempty"` + + // NextCursor Opaque cursor for the next page (cursor pagination only) + NextCursor *string `json:"next_cursor,omitempty"` + Page *int `json:"page,omitempty"` + + // PrevCursor Opaque cursor for the previous page (cursor pagination only). Send as `ending_before`. + PrevCursor *string `json:"prev_cursor,omitempty"` + Total *int `json:"total,omitempty"` } if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err @@ -32077,3 +37291,280 @@ func ParseUpdateStorageObjectVisibilityClientResponse(rsp *http.Response) (*Upda return response, nil } + +// ParseStartGitConnectClientResponse parses an HTTP response from a StartGitConnectWithResponse call +func ParseStartGitConnectClientResponse(rsp *http.Response) (*StartGitConnectClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &StartGitConnectClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest GitConnectStartResponse + 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 == 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 == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + } + + return response, nil +} + +// ParseListGitConnectionsClientResponse parses an HTTP response from a ListGitConnectionsWithResponse call +func ParseListGitConnectionsClientResponse(rsp *http.Response) (*ListGitConnectionsClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ListGitConnectionsClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest GitConnectionsResponse + 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 == 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 == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + } + + return response, nil +} + +// ParseDeleteGitConnectionClientResponse parses an HTTP response from a DeleteGitConnectionWithResponse call +func ParseDeleteGitConnectionClientResponse(rsp *http.Response) (*DeleteGitConnectionClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteGitConnectionClientResponse{ + 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 == 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 == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + } + + return response, nil +} + +// ParseListGitInstallationsClientResponse parses an HTTP response from a ListGitInstallationsWithResponse call +func ParseListGitInstallationsClientResponse(rsp *http.Response) (*ListGitInstallationsClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ListGitInstallationsClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest GitInstallationsResponse + 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 == 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 == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + } + + return response, nil +} + +// ParseListGitInstallationRepositoriesClientResponse parses an HTTP response from a ListGitInstallationRepositoriesWithResponse call +func ParseListGitInstallationRepositoriesClientResponse(rsp *http.Response) (*ListGitInstallationRepositoriesClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ListGitInstallationRepositoriesClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest GitRepositoriesResponse + 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 == 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 == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + } + + return response, nil +} diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 0ac292f..fa1673d 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -45,6 +45,8 @@ tags: description: OAuth provider configuration (Google, GitHub, Microsoft, Apple) - name: OAuth Authentication description: OAuth login flows and provider management for end users + - name: Git Connections + description: Platform-user git provider connections for deployment source integrations - name: Storage Buckets description: Storage bucket management (platform admin) - name: Storage Policies @@ -53,6 +55,8 @@ tags: description: Storage statistics and cross-bucket object listing (platform admin) - name: Storage Objects description: File upload, download, and management (SDK-facing) + - name: Locks + description: Project-scoped leases for backend coordination (service-role keys only) - name: Realtime description: WebSocket realtime configuration and monitoring - name: System @@ -64,6 +68,335 @@ tags: and polls for completion. Session completion is handled by volcano.dev via the Management API. paths: + /user/git/connect: + post: + tags: + - Git Connections + summary: Start a git provider connection + description: | + Starts a first-party dashboard user's git provider connection flow and + returns the provider authorization URL. The response also sets a + short-lived HttpOnly callback binding cookie tied to the authenticated + user through the signed provider state. + operationId: startGitConnect + security: + - UserToken: [] + - AuthUserAccessToken: [] + parameters: + - name: provider + in: query + required: false + description: Git provider to connect. Defaults to github. + schema: + type: string + enum: + - github + default: github + - name: redirect + in: query + required: false + description: URL to redirect the browser to after the provider callback completes. + schema: + type: string + responses: + '200': + description: Provider authorization URL + content: + application/json: + schema: + $ref: '#/components/schemas/GitConnectStartResponse' + '400': + description: Unsupported provider or invalid redirect + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Not authenticated + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Failed to start the connection + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Git provider integration is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/git/connections: + get: + tags: + - Git Connections + summary: List git provider connections + operationId: listGitConnections + security: + - UserToken: [] + - AuthUserAccessToken: [] + responses: + '200': + description: Stored git provider connections + content: + application/json: + schema: + $ref: '#/components/schemas/GitConnectionsResponse' + '401': + description: Not authenticated + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Failed to list connections + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Git provider integration is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/git/connections/{connectionId}: + delete: + tags: + - Git Connections + summary: Delete a git provider connection + operationId: deleteGitConnection + security: + - UserToken: [] + - AuthUserAccessToken: [] + parameters: + - name: connectionId + in: path + required: true + description: Connection ID to delete + schema: + type: string + format: uuid + responses: + '204': + description: Connection deleted + '400': + description: Malformed connection ID + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Not authenticated + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Connection not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Failed to delete connection + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Git provider integration is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/git/connections/{connectionId}/installations: + get: + tags: + - Git Connections + summary: List GitHub App installations accessible to a connection + description: | + Live proxy to GitHub: lists the platform GitHub App installations the + connection's stored user token can access. Nothing is persisted by + this call. + operationId: listGitInstallations + security: + - UserToken: [] + - AuthUserAccessToken: [] + parameters: + - name: connectionId + in: path + required: true + description: Connection ID to browse installations for. + schema: + type: string + format: uuid + responses: + '200': + description: Installations accessible to the connection + content: + application/json: + schema: + $ref: '#/components/schemas/GitInstallationsResponse' + '400': + description: Malformed connection ID + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Not authenticated + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Connection not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Failed to list installations + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Git provider integration is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/git/connections/{connectionId}/installations/{installationId}/repositories: + get: + tags: + - Git Connections + summary: List repos accessible to a connection through an installation + description: | + Live proxy to GitHub: lists the repos the connection's stored user + token can access through installationId. Nothing is persisted by this + call. + operationId: listGitInstallationRepositories + security: + - UserToken: [] + - AuthUserAccessToken: [] + parameters: + - name: connectionId + in: path + required: true + description: Connection ID to browse repositories for. + schema: + type: string + format: uuid + - name: installationId + in: path + required: true + description: GitHub App installation ID. + schema: + type: integer + format: int64 + responses: + '200': + description: Repositories accessible through the installation + content: + application/json: + schema: + $ref: '#/components/schemas/GitRepositoriesResponse' + '400': + description: Malformed connection or installation ID + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Not authenticated + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Connection not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Failed to list repositories + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Git provider integration is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /github/callback: + get: + tags: + - Git Connections + summary: Complete a GitHub App connection callback + description: | + Public GitHub App callback. The signed state and callback binding cookie + bind the provider authorization to the browser that started the flow. + operationId: gitConnectCallback + security: [] + parameters: + - name: code + in: query + required: false + description: GitHub user authorization code. + schema: + type: string + - name: state + in: query + required: true + description: Signed connect state generated by startGitConnect. + schema: + type: string + - name: error + in: query + required: false + description: Provider error returned by GitHub. + schema: + type: string + responses: + '303': + description: Redirect back to the app after a successful or failed connect attempt + headers: + Location: + description: Redirect target + schema: + type: string + '400': + description: Invalid callback request or state + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many callback attempts from this client + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Failed to complete the connection + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Git provider integration is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /projects: get: tags: @@ -181,7 +514,7 @@ paths: schema: $ref: '#/components/schemas/Error' '409': - description: Conflict (project name already exists) + description: Conflict (project name already exists or a resource deployment blocks a region change) content: application/json: schema: @@ -627,12 +960,262 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' - '422': - description: Manifest validation failed; nothing was applied + '422': + description: Manifest validation failed; nothing was applied + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectConfigValidationErrorResponse' + /projects/{id}/git-connection: + get: + tags: + - Projects + - Git Connections + summary: Get a project's repo connection + operationId: getProjectGitConnection + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + responses: + '200': + description: The project's current repo connection + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectGitConnection' + '401': + description: Unauthorized - invalid or missing token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Project not owned by the caller + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project not found, or has no repo connection + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Failed to get project git connection + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + tags: + - Projects + - Git Connections + summary: Connect or update a project's repo connection + description: | + Full replace, following Vercel's model: many projects may point at the + same repo, so this only binds the project — it never creates or + deletes git-provider state. Used for both the initial connect and + later edits (repo change, root directory, production branch). + Resolves the repository_id or repo_full_name selector against the repos + accessible through installation_id via connection_id's stored GitHub + user token, then persists repository metadata only from that validated + GitHub response. + operationId: connectProjectGit + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectProjectGitRequest' + responses: + '200': + description: The project's repo connection + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectGitConnection' + '400': + description: Malformed request body + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized - invalid or missing token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: | + Project not owned by the caller, or the selected repository is not + accessible through installation_id + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project or connection not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Failed to connect project git + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Git provider integration is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - Projects + - Git Connections + summary: Disconnect a project's repo connection + operationId: disconnectProjectGit + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + responses: + '204': + description: Connection removed + '401': + description: Unauthorized - invalid or missing token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Project not owned by the caller + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project not found, or has no repo connection + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Failed to disconnect project git + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /projects/{id}/git-deploy-settings: + get: + tags: + - Projects + - Git Connections + summary: Get a project's Git auto-deploy settings + operationId: getProjectGitDeploySettings + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + responses: + '200': + description: The project's current Git auto-deploy settings + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectGitDeploySettings' + '401': + description: Unauthorized - invalid or missing token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: 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: Failed to get project git deploy settings + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + tags: + - Projects + - Git Connections + summary: Update a project's Git auto-deploy settings + description: | + Full replace of the project's Git auto-deploy settings: what a push to + the connected repo's production branch deploys. All settings are + default-off. The frontend need not exist when the settings are saved; + frontend_name is resolved at deploy time. Independent of the repo + binding (see connectProjectGit). + operationId: updateProjectGitDeploySettings + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateProjectGitDeploySettingsRequest' + responses: + '200': + description: The project's updated Git auto-deploy settings + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectGitDeploySettings' + '400': + description: Malformed request body, or frontend_app_root without frontend_name + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized - invalid or missing token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: 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: Failed to update project git deploy settings content: application/json: schema: - $ref: '#/components/schemas/ProjectConfigValidationErrorResponse' + $ref: '#/components/schemas/Error' /projects/{id}/databases/{databaseName}/queries: get: tags: @@ -712,6 +1295,28 @@ paths: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' + - name: created_after + in: query + required: false + description: Restrict results to attempts created at or after this timestamp. + schema: + type: string + format: date-time + - name: resource_type + in: query + required: false + description: | + Restrict the feed to a single resource type. Omit to return both + Function and Frontend deployments. + schema: + type: string + enum: + - function + - frontend responses: '200': description: Successful response @@ -743,6 +1348,76 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + /projects/{id}/deployments/summary: + get: + tags: + - Projects + summary: Summarize deployments in a project + description: | + Summarizes deployment attempts for one comparable resource pipeline. + Success rate uses conclusive outcomes only: active and deleted attempts + are successful; failed and degraded attempts are failures; in-progress + and superseded attempts are excluded. Median build duration includes + completed, non-superseded attempts with recorded CodeBuild work, + including failed builds. + operationId: summarizeProjectDeployments + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + - name: search + in: query + required: false + description: Restrict the summary to resource names containing this value. + schema: + type: string + - name: resource_type + in: query + required: true + description: Restrict the summary to one comparable deployment pipeline. + schema: + type: string + enum: + - function + - frontend + - name: created_after + in: query + required: false + description: Restrict results to attempts created at or after this timestamp. + schema: + type: string + format: date-time + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectDeploymentSummary' + '400': + description: Bad request - invalid identifier or filter + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized - invalid or missing token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden - project ownership required + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /projects/{id}/domains: get: tags: @@ -760,6 +1435,10 @@ paths: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: Successful response @@ -796,6 +1475,12 @@ paths: tags: - Functions summary: List all functions in a project + description: | + Supports two mutually exclusive pagination modes. Offset mode uses `page` + and `limit` and returns `next` (URL). Cursor mode uses `cursor` and + `limit`, supports `search` (case-insensitive name match), and returns + `next_cursor`/`prev_cursor`. Sending both `page` and `cursor` (or `page` + and `search`) returns 400. operationId: listFunctions security: - UserToken: [] @@ -803,6 +1488,10 @@ paths: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: Successful response @@ -836,9 +1525,13 @@ paths: immediately returns a Function resource with `status: provisioning`, then transitions to `active` or `failed`. If another deployment is running, the response preserves the resource's current status and exposes the queued deployment through `pending_deployment_id`. + Existing function traffic continues to use the last known-good runtime during an update. A failed + update keeps that runtime available and records the attempted deployment as failed. + Only one deployment runs for a given function. A newer request supersedes any queued request + and starts after the running deployment. Different functions and projects deploy concurrently. If a function with the same name already exists in the project, this operation updates that function's runtime, handler, and source bundle and returns `200 OK`. - Each project can contain up to 5,000 functions. Creating a new function over this cap returns 403. + Each project can contain up to 10,000 functions. Creating a new function over this cap returns 403. operationId: createFunction security: - UserToken: [] @@ -1346,12 +2039,13 @@ paths: summary: Stream project logs description: | Live-tail project logs as Server-Sent Events. The request body uses the - resource selector plus `levels`, `regions`, `start_time`, and `limit`, + resource selector plus `q`, `start_time`, and `limit`, including runtime logs and function/frontend deployment logs selected with `resource.deployments`. Deployment logs are not supported for databases. Database logs are a PRO-plan feature; `resource.type=database` - from a FREE-plan project owner returns 403. Do not send `q`, `cursor`, or - `end_time`; use `/logs/search` for text search and range backfills. + from a FREE-plan project owner returns 403. The `q` field uses the same + syntax as search and activity requests. Do not send `cursor` or + `end_time`; use `/logs/search` for range backfills. Explicit historical `start_time` values are limited to the plan's retention window (FREE: 1 day, PRO: 30 days). Resume with `Last-Event-ID` or the `last_event_id` query parameter. The cursor is @@ -1506,6 +2200,10 @@ paths: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: Project schedulers @@ -1649,6 +2347,12 @@ paths: tags: - Frontends summary: List all frontends in a project + description: | + Supports two mutually exclusive pagination modes. Offset mode uses `page` + and `limit` and returns `next` (URL). Cursor mode uses `cursor` and + `limit`, supports `search` (case-insensitive name match), and returns + `next_cursor`. Sending both `page` and `cursor` (or `page` and `search`) + returns 400. operationId: listFrontends security: - UserToken: [] @@ -1656,6 +2360,10 @@ paths: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: Successful response @@ -1704,18 +2412,26 @@ paths: immediately returns `status: provisioning`, then transitions to `active`, `degraded`, or `failed`. If another deployment is running, the response preserves the frontend's current status and exposes the queued deployment through `pending_deployment_id`. + Existing frontend traffic continues to use an available runtime while the new deployment builds + and provisions. Each deployment publishes its own static assets before the runtimes switch to its + build, and the live build's assets keep serving until the new deployment is live, so a page loaded + mid-deployment resolves its assets whichever build served it. A failed redeploy puts the runtimes + back on the build they were running, leaves the frontend `active` on the previous deployment, and + records the attempted deployment as failed. `degraded` means the runtime remains available but + edge synchronization requires recovery; Volcano retries the edge step without rebuilding. Only one deployment may run for a + given frontend, while independent frontends and projects can deploy concurrently. For monorepos, provide `app_root` as a relative path from the uploaded archive root to the Next.js app that should be built. Omit it for single-app archives. Supported frontend environments are Next.js 15.x and 16.x with Node.js 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.20 (`^18.18.0 || ^19.8.0 || >=20.0.0`) and Next 16.2.10 (`>=20.9.0`). + `engines.node` constraint. Volcano tests Next 15.5.22 (`^18.18.0 || ^19.8.0 || >=20.0.0`) and Next 16.2.12 (`>=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 Lambda container images are built, the publish build enforces `LAMBDA_TARGET_CONTAINER_SIZE_LIMIT_MB` before pushing. This operation is limited by plan-based frontend deployment quotas (`FREE_FRONTEND_DEPLOYMENTS`, `PRO_FRONTEND_DEPLOYMENTS`). - Each project can contain up to 5,000 frontends regardless of plan. + Each project can contain up to 10,000 frontends regardless of plan. operationId: createFrontend security: - UserToken: [] @@ -1917,8 +2633,10 @@ paths: Starts a new frontend workflow using the latest stored artifact. A deployment that starts immediately returns `status: provisioning`, then transitions to `active`, `degraded`, or `failed`. An overlapping deployment preserves the frontend's current status, is exposed through - `pending_deployment_id`, and supersedes any older queued deployment. The previous runtime remains - available during provisioning. + `pending_deployment_id`, and supersedes any older queued deployment. The previous runtime and its + published static assets remain available during provisioning, and a failed redeploy restores the + regional runtimes to that build and keeps it serving while the attempted deployment is recorded as + failed. operationId: redeployFrontend security: - UserToken: [] @@ -1987,11 +2705,15 @@ paths: - $ref: '#/components/parameters/FrontendId' responses: '200': - description: Frontend custom domain status + description: | + Frontend custom domain status, or null when the frontend has no + custom domain configured (the common empty state). content: application/json: schema: - $ref: '#/components/schemas/FrontendCustomDomainResponse' + nullable: true + allOf: + - $ref: '#/components/schemas/FrontendCustomDomainResponse' '400': description: Bad request - invalid identifier content: @@ -2011,7 +2733,7 @@ paths: schema: $ref: '#/components/schemas/Error' '404': - description: Frontend or custom domain not found + description: Frontend not found content: application/json: schema: @@ -2271,6 +2993,10 @@ paths: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: Successful response @@ -2320,6 +3046,12 @@ paths: tags: - Databases summary: List all databases for a project + description: | + Supports two mutually exclusive pagination modes. Offset mode uses `page` + and `limit`. Cursor mode uses `cursor` and `limit`, supports `search` + (case-insensitive name match), and returns `next_cursor`/`prev_cursor`. + The optional `status` filter applies in both modes and is bound to the + cursor. Sending both `page` and `cursor` (or `page` and `search`) returns 400. operationId: listDatabases security: - UserToken: [] @@ -2327,6 +3059,10 @@ paths: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: Successful response @@ -2454,11 +3190,9 @@ paths: new_password: type: string description: New Volcano-managed client password. Always starts with `vpg_`. - example: vpg_qv3Y4GQwHcklV4G76ZcKhZW-rmZLQktEORHnGqU0Bpk connection_string: type: string description: Updated pgproxy connection string using Volcano-managed credentials. - example: postgresql://volcano_client_11111111-1111-1111-1111-111111111111:vpg_qv3Y4GQwHcklV4G76ZcKhZW-rmZLQktEORHnGqU0Bpk@database.volcano.dev:5432/mydb?sslmode=require&application_name=volcano_full_access /projects/{id}/databases/{databaseName}/type: patch: tags: @@ -3327,6 +4061,37 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + /auth/password-policy: + get: + tags: + - Authentication + summary: Get the effective password policy + description: | + Returns the backend-enforced password bounds and compromised-password + screening status for the project identified by the anon key. A valid + anon key is required, but no route-specific auth permission is needed. + operationId: authGetPasswordPolicy + security: + - AnonKey: [] + responses: + '200': + description: Effective password policy + content: + application/json: + schema: + $ref: '#/components/schemas/AuthPasswordPolicy' + '401': + description: Invalid, missing, or revoked anon key + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project or auth configuration not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /auth/signup: post: tags: @@ -3363,7 +4128,9 @@ paths: format: email password: type: string - minLength: 6 + description: | + Password validated after NFC normalization against the + policy returned by GET /auth/password-policy. user_metadata: type: object additionalProperties: true @@ -3386,12 +4153,24 @@ paths: Forbidden - Signups disabled or anon key lacks signup permission '429': description: Rate limit exceeded + '503': + description: Compromised-password screening is temporarily unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /auth/signin: post: tags: - Authentication summary: Sign in an auth user - description: Authenticate with email and password. Requires anon key. Project is identified via the anon key. + description: | + Authenticate with email and password. Requires an anon key. + + Set `session_mode` to `cookie` to request HttpOnly refresh-token + storage. Cookie mode is honored only for an exact, credentialed CORS + origin on the same schemeful site as this API. Otherwise the response + retains the refresh token in its body. operationId: authSignin security: - AnonKey: [] @@ -3409,6 +4188,10 @@ paths: type: string password: type: string + session_mode: + type: string + enum: + - cookie responses: '200': description: Signin successful @@ -3432,21 +4215,30 @@ paths: tags: - Authentication summary: Refresh access token - description: Get a new access token using refresh token. Requires anon key. Project is identified via the anon key. + description: | + Get a new access token using a refresh token. Requires an anon key. + + Send `refresh_token` in the body for the default flow. An eligible + cookie-mode browser request may instead send `session_mode: cookie` + with an empty token or omit the request body; the API reads and resets + the project's HttpOnly cookie and omits `refresh_token` from the + response. operationId: authRefresh security: - AnonKey: [] requestBody: - required: true + required: false content: application/json: schema: type: object - required: - - refresh_token properties: refresh_token: type: string + session_mode: + type: string + enum: + - cookie responses: '200': description: Token refreshed @@ -3471,21 +4263,28 @@ paths: tags: - Authentication summary: Logout (revoke refresh token) - description: Invalidate a refresh token. Requires anon key. Project is identified via the anon key. + description: | + Invalidate a refresh token. Requires an anon key. + + Send `refresh_token` for the default flow. An eligible cookie-mode + browser request may instead send `session_mode: cookie` with an empty + token; logout remains idempotent when the cookie is missing or expired. operationId: authLogout security: - AnonKey: [] requestBody: - required: true + required: false content: application/json: schema: type: object - required: - - refresh_token properties: refresh_token: type: string + session_mode: + type: string + enum: + - cookie responses: '204': description: Logged out successfully @@ -3562,7 +4361,9 @@ paths: description: Recovery token from forgot-password new_password: type: string - minLength: 6 + description: | + Password validated after NFC normalization against the + policy returned by GET /auth/password-policy. responses: '200': description: Password reset successful @@ -3577,6 +4378,12 @@ paths: description: Password doesn't meet requirements '401': description: Invalid or expired token + '503': + description: Compromised-password screening is temporarily unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /auth/confirm: post: tags: @@ -3733,7 +4540,9 @@ paths: format: email password: type: string - minLength: 6 + description: | + Password validated after NFC normalization against the + policy returned by GET /auth/password-policy. user_metadata: type: object additionalProperties: true @@ -3751,6 +4560,12 @@ paths: description: Not an anonymous user '409': description: Email already in use + '503': + description: Compromised-password screening is temporarily unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /auth/user/change-email: post: tags: @@ -4036,10 +4851,16 @@ paths: properties: password: type: string - minLength: 6 + description: | + Password validated after NFC normalization against the + policy returned by GET /auth/password-policy. user_metadata: type: object additionalProperties: true + description: | + Metadata keys to merge into the current user metadata. + Omitted keys remain unchanged; set a key to null to remove it. + Merging is shallow; nested objects replace the stored value for that top-level key. responses: '200': description: Profile updated @@ -4062,6 +4883,12 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + '503': + description: Compromised-password screening is temporarily unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /auth/user/identities: get: tags: @@ -4199,6 +5026,92 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + /projects/{id}/auth/insights: + get: + tags: + - Auth Admin + summary: Get auth user insights + description: | + Returns current auth-user totals, rolling 30-day active users, and + zero-filled signup and successful sign-in counts for an inclusive UTC + date range. Weeks start on Monday. Sign-in counts and active-user + activity begin when collection is deployed. Historical signup counts + are backfilled from users present at deployment. Token refreshes affect + active users but not the sign-in series. + operationId: getAuthInsights + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + - name: from + in: query + description: Inclusive UTC start date. Defaults to 29 days before `to`. + schema: + type: string + format: date + - name: to + in: query + description: Inclusive UTC end date. Defaults to today. + schema: + type: string + format: date + - name: interval + in: query + description: Chart bucket size. Defaults to `day`. + schema: + $ref: '#/components/schemas/AuthInsightsInterval' + responses: + '200': + description: Auth insights retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/AuthInsightsResponse' + example: + project_id: 4f165080-a931-4e03-b3bd-41c45c3f0058 + observed_at: '2026-07-20T18:00:00Z' + window: + from: '2026-06-21' + to: '2026-07-20' + interval: day + summary: + total_users: 1234 + active_users_30d: 418 + series: + - bucket_start: '2026-07-20' + signups: 12 + signins: 97 + is_partial: true + '400': + description: Invalid date range or interval + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized - invalid or missing token + 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: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /projects/{id}/auth/users: get: tags: @@ -4212,6 +5125,10 @@ paths: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: Successful response @@ -5286,16 +6203,37 @@ paths: schema: type: string description: | - URL to redirect to after the OAuth flow (optional). The session - tokens are appended to this URL's fragment on success. If the URL - carries a `vh_state` query parameter (the client SDK's one-time - nonce), it is moved into the fragment as `state` so the SDK can bind - the returned session to the flow it initiated (login-CSRF defense). + URL to redirect to after the OAuth flow (optional). Must exactly + match an entry in the project's `allowed_redirect_urls`, including + its query string, or be the project's own managed hosted-auth page + URL. + - name: client_state + in: query + schema: + type: string + maxLength: 255 + description: | + Optional application nonce. It is stored with the server-generated + provider state and echoed to redirect_url as `state`. + - name: response_mode + in: query + schema: + type: string + enum: + - code + description: | + Set to `code` to receive a short-lived authorization code at + redirect_url, then use POST /auth/oauth/exchange to obtain the + session. `redirect_url` is required in this mode. When omitted, the + established session-fragment response is retained for compatibility + with existing clients. responses: '307': description: Redirect to OAuth provider '400': - description: OAuth provider is disabled for this project + description: | + OAuth provider is disabled for this project, or `redirect_url` is + not registered in `allowed_redirect_urls` '404': description: OAuth provider not configured /auth/oauth/{provider}/callback: @@ -5334,19 +6272,70 @@ paths: type: string responses: '200': - description: Existing user signed in + description: Existing user signed in (when redirect_url was omitted) content: application/json: schema: $ref: '#/components/schemas/AuthTokenResponse' '201': - description: New user created and signed in + description: New user created and signed in (when redirect_url was omitted) content: application/json: schema: $ref: '#/components/schemas/AuthTokenResponse' + '303': + description: | + Redirect to the exact registered redirect_url. Flows that requested + response_mode=code receive a short-lived, single-use `code` and + optional application `state`; compatibility flows receive the + established session fragment. + '400': + description: | + Missing/invalid code or state, the state parameter expired, or the + flow's stored redirect_url is no longer registered in + allowed_redirect_urls (re-checked at callback time) '409': description: Email already exists (requires linking) + /auth/oauth/exchange: + post: + tags: + - OAuth Authentication + summary: Exchange OAuth authorization code + description: | + Atomically consumes a short-lived callback code and returns the user's + session. The request must use the same project anon key and exact + redirect_url that initiated the flow. + operationId: authOAuthExchange + security: + - AnonKey: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - code + - redirect_url + properties: + code: + type: string + redirect_url: + type: string + format: uri + responses: + '200': + description: Authorization code consumed and session created + content: + application/json: + schema: + $ref: '#/components/schemas/AuthTokenResponse' + '400': + description: Invalid, expired, consumed, or redirect-mismatched code + '401': + description: Missing or invalid project anon key + '429': + description: Too many exchange attempts from this client /auth/device/authorize: post: tags: @@ -5585,6 +6574,31 @@ paths: - github - microsoft - apple + - name: redirect_url + in: query + schema: + type: string + description: | + URL to redirect to after linking completes (optional). Same + allowed_redirect_urls requirement as GET /auth/oauth/{provider}/authorize. + - name: client_state + in: query + schema: + type: string + maxLength: 255 + description: | + Optional application nonce echoed to redirect_url as `state`. + - name: response_mode + in: query + schema: + type: string + enum: + - code + description: | + Set to `code` to receive a short-lived authorization code at + redirect_url. `redirect_url` is required in this mode. When + omitted, the established session-fragment response is retained for + compatibility with existing clients. responses: '200': description: Authorization URL generated @@ -5595,6 +6609,12 @@ paths: properties: authorization_url: type: string + '400': + description: redirect_url is not registered in allowed_redirect_urls + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '401': description: Not authenticated content: @@ -5854,11 +6874,24 @@ paths: tags: - Anon Keys summary: List anon keys + description: | + Supports two mutually exclusive pagination modes. Offset mode uses `page` + and `limit` and is the default when neither `cursor` nor `search` is + supplied (first page, default `limit`). Cursor mode uses `cursor` and + `limit`, supports `search` (case-insensitive name match), and returns + `next_cursor`. Sending both `page` and `cursor` (or `page` and `search`) + returns 400. operationId: listAnonKeys security: - UserToken: [] parameters: - $ref: '#/components/parameters/ProjectId' + - $ref: '#/components/parameters/Page' + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: List of anon keys @@ -5871,6 +6904,18 @@ paths: type: array items: $ref: '#/components/schemas/AnonKey' + total: + type: integer + description: Total number of items matching the query (so the UI can render numbered pages). + has_more: + type: boolean + description: Whether a next page exists. + next_cursor: + type: string + description: Opaque cursor for the next page (cursor pagination only) + prev_cursor: + type: string + description: Opaque cursor for the previous page (cursor pagination only). Send as `ending_before`. post: tags: - Anon Keys @@ -6073,6 +7118,10 @@ paths: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: Paginated list of service keys @@ -6120,16 +7169,12 @@ paths: Optional least-privilege scope for the key. When omitted, empty, or containing only blank strings, the key is granted full access (["*"]) for backward compatibility. Provide an explicit list (e.g. - ["functions.invoke", "storage.download"]) to restrict the key; "*" - grants everything. Scope enforcement currently applies to function - invocation and storage object operations; other service-key routes - are not yet gated by scope. + ["functions.invoke", "locks.manage"]) to restrict the key; "*" + grants everything. Scope enforcement applies to function invocation, + storage object operations, and project locks. example: - functions.invoke - - storage.upload - - storage.download - - storage.list - - storage.delete + - locks.manage responses: '201': description: Service key created - save the key_value immediately! @@ -6218,20 +7263,34 @@ paths: tags: - Storage Buckets summary: List all storage buckets in a project + description: | + With no pagination params, returns the full bucket list as a bare array + (legacy). Supplying `cursor`, `ending_before`, `search`, or `limit` + switches to keyset (cursor) pagination and returns a paginated envelope + with `next_cursor`/`prev_cursor` and a filtered `total`. operationId: listStorageBuckets security: - UserToken: [] parameters: - $ref: '#/components/parameters/ProjectId' + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': - description: List of storage buckets + description: | + Either the full bucket list (bare array, legacy) or a paginated + envelope when cursor pagination is requested. content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/StorageBucket' + oneOf: + - type: array + items: + $ref: '#/components/schemas/StorageBucket' + - $ref: '#/components/schemas/PaginatedStorageBuckets' post: tags: - Storage Buckets @@ -6409,6 +7468,10 @@ paths: default: 50 minimum: 1 maximum: 100 + - $ref: '#/components/parameters/Cursor' + - $ref: '#/components/parameters/EndingBefore' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Search' responses: '200': description: Paginated list of storage objects @@ -6429,6 +7492,12 @@ paths: type: integer has_more: type: boolean + next_cursor: + type: string + description: Opaque cursor for the next page (cursor pagination only) + prev_cursor: + type: string + description: Opaque cursor for the previous page (cursor pagination only). Send as `ending_before`. /projects/{id}/storage/stats: get: tags: @@ -6576,6 +7645,320 @@ paths: description: Access denied by storage policy '429': $ref: '#/components/responses/BandwidthCapExceeded' + /locks/{key}/lease: + post: + tags: + - Locks + summary: Acquire a project lock + description: | + Acquires a project-scoped lease using the project embedded in the service-role key. + The caller must hold the `locks.manage` permission. Repeating the request with the + same lock token is idempotent and resets that lease to the requested TTL. A different + live owner receives `409 lock_held`; a caller whose own lease already lapsed receives + `409 lock_ownership_lost`. + operationId: acquireProjectLock + security: + - ServiceRoleKey: [] + parameters: + - $ref: '#/components/parameters/LockKey' + - $ref: '#/components/parameters/LockToken' + - $ref: '#/components/parameters/LockRequestId' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectLockLeaseRequest' + responses: + '201': + description: Lease acquired + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectLockLease' + '400': + description: Invalid lock key, token, or TTL + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Missing or invalid credentials + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: A non-service credential was supplied or the service key lacks `locks.manage` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: | + The lock is held by another live lease (`lock_held`), or the caller's own lease + lapsed and is not yet reclaimable (`lock_ownership_lost`). + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Project lock request limit exceeded + headers: + Retry-After: + description: Seconds until the current fixed-minute window ends. + schema: + type: integer + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Lock service unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + patch: + tags: + - Locks + summary: Renew a project lock + description: | + Renews a lease owned by the supplied lock token. The request must arrive + more than one second before `expires_at`; this safety margin prevents + clock skew between regional API instances from resurrecting an expired + lease. + operationId: renewProjectLock + security: + - ServiceRoleKey: [] + parameters: + - $ref: '#/components/parameters/LockKey' + - $ref: '#/components/parameters/LockToken' + - $ref: '#/components/parameters/LockRequestId' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectLockLeaseRequest' + responses: + '200': + description: Lease renewed + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectLockLease' + '400': + description: Invalid lock key, token, or TTL + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Missing or invalid credentials + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: A non-service credential was supplied or the service key lacks `locks.manage` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: The lease expired or is owned by another token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Project lock request limit exceeded + headers: + Retry-After: + description: Seconds until the current fixed-minute window ends. + schema: + type: integer + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Lock service unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - Locks + summary: Release a project lock + description: Releases a lease only when the supplied lock token still owns it. + operationId: releaseProjectLock + security: + - ServiceRoleKey: [] + parameters: + - $ref: '#/components/parameters/LockKey' + - $ref: '#/components/parameters/LockToken' + - $ref: '#/components/parameters/LockRequestId' + responses: + '204': + description: Lease released + '400': + description: Invalid lock key or token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Missing or invalid credentials + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: A non-service credential was supplied or the service key lacks `locks.manage` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: The lease is owned by another token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Project lock request limit exceeded + headers: + Retry-After: + description: Seconds until the current fixed-minute window ends. + schema: + type: integer + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Lock service unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /locks/{key}: + get: + tags: + - Locks + summary: Read a project lock + description: | + Reports whether the lock is currently held, when its lease expires, and the + holder's fencing token. `held` follows takeover eligibility rather than raw + expiry, so `held: false` means an acquire would succeed now. No lock token is + required, making this usable for monitoring and recovery. + operationId: getProjectLock + security: + - ServiceRoleKey: [] + parameters: + - $ref: '#/components/parameters/LockKey' + - $ref: '#/components/parameters/LockRequestId' + responses: + '200': + description: Current lock state + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectLockState' + '400': + description: Invalid lock key + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Missing or invalid credentials + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: A non-service credential was supplied or the service key lacks `locks.manage` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Project lock request limit exceeded + headers: + Retry-After: + description: Seconds until the current fixed-minute window ends. + schema: + type: integer + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Lock service unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - Locks + summary: Force release a project lock + description: | + Drops the lease whatever token holds it, for recovering a lock whose holder + died without releasing. Use `DELETE /locks/{key}/lease` for normal release. + + This breaks mutual exclusion by itself: the previous holder keeps working + until its own renewal fails. Guard the protected resource with the lease's + `fencing_token`, which the next acquisition raises, so a write from the + displaced holder can be rejected. Succeeds when the lock is already absent. + operationId: forceReleaseProjectLock + security: + - ServiceRoleKey: [] + parameters: + - $ref: '#/components/parameters/LockKey' + - $ref: '#/components/parameters/LockRequestId' + responses: + '204': + description: Lock released + '400': + description: Invalid lock key + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Missing or invalid credentials + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: A non-service credential was supplied or the service key lacks `locks.manage` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Project lock request limit exceeded + headers: + Retry-After: + description: Seconds until the current fixed-minute window ends. + schema: + type: integer + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Lock service unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /storage/{bucketName}/move: post: tags: @@ -6902,6 +8285,7 @@ paths: summary: Update file visibility (public/private) description: | Change whether a file is publicly accessible. Only the file owner or a service key can change visibility. + If the bucket defines UPDATE policies, the owner must also satisfy one of them. - Public files can be downloaded with just an anon key (no user authentication required) - Private files (default) require authentication and must pass policy checks @@ -6932,7 +8316,7 @@ paths: schema: $ref: '#/components/schemas/StorageObject' '403': - description: Only file owner or service key can change visibility + description: Not the file owner or denied by the bucket's UPDATE policies '404': description: Object not found /public/{projectId}/{bucketName}/{path}: @@ -7057,6 +8441,29 @@ components: minLength: 1 maxLength: 64 description: Storage bucket name + Cursor: + name: cursor + in: query + required: false + schema: + type: string + description: | + Opaque keyset pagination cursor from a previous response's `next_cursor` + — pages forward. Mutually exclusive with `page` and `ending_before`; + combining them returns 400. When supplied, the request's `search` and + `limit` must match the values bound to the cursor or the request returns 400. + EndingBefore: + name: ending_before + in: query + required: false + schema: + type: string + description: | + Opaque keyset pagination cursor from a previous response's `prev_cursor` + — pages backward (the page immediately preceding this cursor). Mutually + exclusive with `page` and `cursor`; combining them returns 400. `search` + and `limit` must match the values bound to the cursor or the request + returns 400. DatabaseName: name: databaseName in: path @@ -7100,6 +8507,48 @@ components: maximum: 100 default: 10 description: Number of items per page (max 100) + LockKey: + name: key + in: path + required: true + description: Project-local lock name. + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$ + LockToken: + name: X-Volcano-Lock-Token + in: header + required: true + description: Opaque UUID generated once by the caller and retained for the lease lifetime. + schema: + type: string + format: uuid + LockRequestId: + name: X-Volcano-Request-Id + in: header + required: true + description: | + UUID correlating this request across client and server logs. Repeat safety comes from + the lock token, so a retry under a reused request ID still counts against the quota. + schema: + type: string + format: uuid + Offset: + name: offset + in: query + required: false + schema: + type: integer + minimum: 0 + default: 0 + description: | + Bounded row offset past the keyset anchor named by `cursor` (forward) or + `ending_before` (backward) — the hybrid jump. Seek to the anchor, then + skip this many rows within. Used for numbered jump-to-page: from the + current page, seek to its next/prev cursor and offset the remaining + pages. Only honored on the cursor pagination path; ignored otherwise. Page: name: page in: query @@ -7107,8 +8556,12 @@ components: schema: type: integer minimum: 1 - default: 1 - description: Page number (1-indexed) + description: | + Page number (1-indexed) for offset pagination. Declares no schema + default so the request validator does not inject one: handlers that omit + `page` see it unset (nil) and default to 1 in code, while cursor-first + endpoints (e.g. the project deployments feed) can detect its absence to + stay in keyset/search mode. Supplying `page` selects offset pagination. ProjectId: name: id in: path @@ -7117,6 +8570,16 @@ components: type: string format: uuid description: Project ID + Search: + name: search + in: query + required: false + schema: + type: string + maxLength: 256 + description: | + Case-insensitive substring match on the resource `name`. Only honored on + the cursor pagination path. SchedulerId: name: schedulerId in: path @@ -7221,7 +8684,13 @@ components: default: 0 min_password_length: type: integer - default: 6 + minimum: 15 + maximum: 128 + default: 15 + description: Configured minimum password length in Unicode characters. + password_policy: + readOnly: true + $ref: '#/components/schemas/AuthPasswordPolicy' require_uppercase: type: boolean default: false @@ -7292,6 +8761,18 @@ components: type: integer description: CORS preflight cache duration (seconds) default: 86400 + require_email_confirmation: + type: boolean + description: Require users to confirm email before sign-in. Can only be true when email_enabled is true. + default: false + email_confirmation_timeout: + type: integer + description: Email confirmation token expiry in seconds. + default: 86400 + auto_link_verified_oauth: + type: boolean + description: Link a verified OAuth identity to an existing confirmed account with the same email instead of returning a conflict. Requires require_email_confirmation to be true. + default: false email_enabled: type: boolean description: Enable transactional email sending (confirmation, reset, change notifications). Must be true when require_email_confirmation is true. @@ -7307,10 +8788,10 @@ components: default: 587 smtp_username: type: string - smtp_password: - type: string - format: password - description: SMTP password. Stored encrypted at rest (AES-256-GCM); returned decrypted only to the authenticated project owner. + smtp_password_configured: + type: boolean + description: Whether an SMTP password is configured. The password itself is never returned. + default: false smtp_use_tls: type: boolean default: true @@ -7344,6 +8825,96 @@ components: the built-in managed device page. Lets a CLI surface the project's own RFC 8628 approval page. Empty falls back to the managed page. example: https://app.acme.com/device + required: + - password_policy + AuthInsightsInterval: + type: string + enum: + - day + - week + - month + AuthInsightsResponse: + type: object + additionalProperties: false + properties: + project_id: + type: string + format: uuid + observed_at: + type: string + format: date-time + window: + $ref: '#/components/schemas/AuthInsightsWindow' + summary: + $ref: '#/components/schemas/AuthInsightsSummary' + series: + type: array + items: + $ref: '#/components/schemas/AuthInsightsSeriesPoint' + required: + - project_id + - observed_at + - window + - summary + - series + AuthInsightsSeriesPoint: + type: object + additionalProperties: false + properties: + bucket_start: + type: string + format: date + signups: + type: integer + format: int64 + minimum: 0 + description: Accounts created during the bucket. + signins: + type: integer + format: int64 + minimum: 0 + description: Successful session creations during the bucket. + is_partial: + type: boolean + description: Whether the requested window or observation time clips this bucket. + required: + - bucket_start + - signups + - signins + - is_partial + AuthInsightsSummary: + type: object + additionalProperties: false + properties: + total_users: + type: integer + format: int64 + minimum: 0 + description: Current auth-user count, matching the auth-user list total. + active_users_30d: + type: integer + format: int64 + minimum: 0 + description: Users with a successful session creation or refresh in the trailing 30 days since activity collection was deployed. + required: + - total_users + - active_users_30d + AuthInsightsWindow: + type: object + additionalProperties: false + properties: + from: + type: string + format: date + to: + type: string + format: date + interval: + $ref: '#/components/schemas/AuthInsightsInterval' + required: + - from + - to + - interval AuthHostedPage: type: object properties: @@ -7470,6 +9041,50 @@ components: $ref: '#/components/schemas/AuthMethodSummary' required: - methods + AuthPasswordPolicy: + type: object + additionalProperties: false + description: Effective backend-enforced password policy. + properties: + effective_min_length: + type: integer + minimum: 15 + maximum: 128 + description: Effective minimum password length in Unicode characters. + min_configurable_length: + type: integer + minimum: 15 + maximum: 15 + description: Lowest minimum password length accepted by the auth configuration endpoint. + max_length: + type: integer + minimum: 128 + maximum: 128 + description: Maximum password length in Unicode characters. + require_uppercase: + type: boolean + description: Whether passwords must contain an ASCII uppercase letter (A-Z). + require_lowercase: + type: boolean + description: Whether passwords must contain an ASCII lowercase letter (a-z). + require_numbers: + type: boolean + description: Whether passwords must contain an ASCII digit (0-9). + require_special_chars: + type: boolean + description: Whether passwords must contain one of the backend-supported special characters. + compromised_passwords_rejected: + type: boolean + description: Whether common and known-compromised passwords are rejected by the backend. + required: + - effective_min_length + - min_configurable_length + - max_length + - require_uppercase + - require_lowercase + - require_numbers + - require_special_chars + - compromised_passwords_rejected AuthSession: type: object description: An authentication session for a user @@ -7568,14 +9183,16 @@ components: description: Access token lifetime in seconds refresh_token: type: string - description: Long-lived token for getting new access tokens + x-go-type-skip-optional-pointer: true + description: | + Long-lived token for getting new access tokens. Omitted when the + request uses eligible HttpOnly cookie session storage. user: $ref: '#/components/schemas/AuthUser' required: - access_token - token_type - expires_in - - refresh_token - user AuthUser: type: object @@ -7800,6 +9417,7 @@ components: properties: name: type: string + maxLength: 200 enabled: type: boolean default: true @@ -8027,7 +9645,6 @@ components: - `volcano_full_access` — Full admin access (DDL, migrations) - `volcano_user_access:{user_id}` — User impersonation (RLS enforced) - `volcano_user_access` — Anonymous access (anon role, RLS enforced) - example: postgres://volcano_client_11111111-1111-1111-1111-111111111111:vpg_secret@database.volcano.dev:5432/my_app_db?sslmode=require&application_name=volcano_full_access region: type: string description: AWS region where database is hosted @@ -8048,6 +9665,16 @@ components: - volcano-db-xl - volcano-db-2xl example: volcano-db-xs + storage_bytes: + type: integer + format: int64 + minimum: 0 + description: | + Latest observed on-disk size from `pg_database_size`, in bytes. This + point-in-time gauge may be absent until the database has been sampled. + Summing the latest samples for every database in a project produces + the project's "Database Storage (Bytes)" usage gauge. Populated on + database list responses; single-database responses omit it. last_invoked_at: type: string format: date-time @@ -8093,102 +9720,356 @@ components: description: Time range of the metrics (e.g., "2024-01-01T00:00:00Z to 2024-01-02T00:00:00Z") granularity: type: string - enum: - - hourly - - daily - - monthly - description: Granularity of the aggregated metrics + enum: + - hourly + - daily + - monthly + description: Granularity of the aggregated metrics + required: + - storage_bytes + - data_written_bytes + - data_transfer_bytes + - compute_time_seconds + - active_time_seconds + DatabaseQueryPerformanceResponse: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/DatabaseQueryPerformanceItem' + required: + - data + DeviceAuthorizationResponse: + type: object + properties: + device_code: + type: string + user_code: + type: string + verification_uri: + type: string + description: | + Browser verification URL. Points at the project's managed device + approval page served by this API: + `/projects/{projectId}/auth/hosted?action=device&anon_key=...`. + Requires the project to have managed auth enabled and a default anon + key. A custom CLI may ignore this and direct users to its own + RFC 8628-compatible page instead (see the device-auth guide). + verification_uri_complete: + type: string + description: | + Same as `verification_uri` but with the `user_code` prefilled + (`&user_code=...`). This is the URL most device clients open. + expires_in: + type: integer + interval: + type: integer + required: + - device_code + - user_code + - verification_uri + - verification_uri_complete + - expires_in + - interval + EmailTemplate: + type: object + description: Custom email template + properties: + id: + type: string + format: uuid + project_id: + type: string + format: uuid + template_type: + type: string + enum: + - welcome + - confirmation + - password_reset + - password_changed + subject: + type: string + example: Confirm your email address + html_body: + type: string + description: HTML template with placeholders + text_body: + type: string + description: Plain text template with placeholders + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - template_type + - subject + - html_body + - text_body + Error: + type: object + properties: + error: + type: string + code: + type: string + description: Stable machine-readable error code when a specific recovery path is available. + required: + - error + GitConnection: + type: object + properties: + id: + type: string + format: uuid + provider: + type: string + provider_user_id: + type: string + provider_login: + type: string + status: + type: string + last_authenticated_at: + type: string + format: date-time + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + required: + - id + - provider + - provider_user_id + - provider_login + - status + - last_authenticated_at + - created_at + - updated_at + GitConnectStartResponse: + type: object + properties: + authorization_url: + type: string + required: + - authorization_url + GitConnectionsResponse: + type: object + properties: + connections: + type: array + items: + $ref: '#/components/schemas/GitConnection' + required: + - connections + GitInstallation: + type: object + properties: + id: + type: integer + format: int64 + account_login: + type: string + account_type: + type: string + repository_selection: + type: string + required: + - id + - account_login + - account_type + - repository_selection + GitInstallationsResponse: + type: object + properties: + installations: + type: array + items: + $ref: '#/components/schemas/GitInstallation' + required: + - installations + GitRepository: + type: object + properties: + id: + type: integer + format: int64 + description: Stable GitHub repository id (repository.id), unchanged by renames. + full_name: + type: string + default_branch: + type: string + private: + type: boolean required: - - storage_bytes - - data_written_bytes - - data_transfer_bytes - - compute_time_seconds - - active_time_seconds - DatabaseQueryPerformanceResponse: + - id + - full_name + - default_branch + - private + GitRepositoriesResponse: type: object properties: - data: + repositories: type: array items: - $ref: '#/components/schemas/DatabaseQueryPerformanceItem' + $ref: '#/components/schemas/GitRepository' required: - - data - DeviceAuthorizationResponse: + - repositories + ProjectGitConnection: type: object properties: - device_code: + repo_installation_id: + type: integer + format: int64 + repo_id: + type: integer + format: int64 + description: Stable GitHub repository id (repository.id), the authoritative binding. + repo_full_name: type: string - user_code: + root_directory: type: string - verification_uri: + production_branch: type: string - description: | - Browser verification URL. Points at the project's managed device - approval page served by this API: - `/projects/{projectId}/auth/hosted?action=device&anon_key=...`. - Requires the project to have managed auth enabled and a default anon - key. A custom CLI may ignore this and direct users to its own - RFC 8628-compatible page instead (see the device-auth guide). - verification_uri_complete: + description: The repository's GitHub default branch, cached at connect time and used as the deployment target. + updated_at: type: string - description: | - Same as `verification_uri` but with the `user_code` prefilled - (`&user_code=...`). This is the URL most device clients open. - expires_in: - type: integer - interval: - type: integer + format: date-time required: - - device_code - - user_code - - verification_uri - - verification_uri_complete - - expires_in - - interval - EmailTemplate: + - repo_installation_id + - repo_id + - repo_full_name + - root_directory + - production_branch + - updated_at + ProjectGitDeploySettings: type: object - description: Custom email template + description: 'A project''s GitHub auto-deploy settings: what a push to the connected repo''s production branch deploys. All settings are default-off.' properties: - id: - type: string - format: uuid - project_id: + auto_deploy_enabled: + type: boolean + description: Whether a production-branch push triggers a deployment. + deploy_functions: + type: boolean + description: Whether the repo's functions are deployed on push. + frontend_name: type: string - format: uuid - template_type: + description: Name of the frontend to build and deploy on push. Omitted when no frontend is deployed. Resolved at deploy time; need not exist yet. + frontend_app_root: type: string - enum: - - welcome - - confirmation - - password_reset - - password_changed - subject: + description: App root (subdirectory) the frontend builds from. Omitted for the repo root. + updated_at: type: string - example: Confirm your email address - html_body: + format: date-time + required: + - auto_deploy_enabled + - deploy_functions + - updated_at + UpdateProjectGitDeploySettingsRequest: + type: object + description: Full replace of a project's Git auto-deploy settings. + properties: + auto_deploy_enabled: + type: boolean + deploy_functions: + type: boolean + frontend_name: type: string - description: HTML template with placeholders - text_body: + description: Frontend to deploy on push. Omit or empty to deploy no frontend. + frontend_app_root: type: string - description: Plain text template with placeholders - created_at: + description: App root the frontend builds from. Requires frontend_name; omit for the repo root. + required: + - auto_deploy_enabled + - deploy_functions + ProjectLockLeaseRequest: + type: object + additionalProperties: false + properties: + ttl_seconds: + type: integer + minimum: 5 + maximum: 7776000 + description: | + Lease duration in seconds, from 5 seconds through 90 days, measured + from when the request is served. Renew before it elapses. A renewal + sets the new expiry outright, so a shorter TTL shortens the lease. + Renewals cannot extend an acquisition beyond its absolute 90-day + deadline. + required: + - ttl_seconds + ProjectLockLease: + type: object + additionalProperties: false + properties: + expires_at: type: string format: date-time - updated_at: + description: Advisory lease expiry timestamp in UTC. + fencing_token: + type: integer + format: int64 + description: | + Monotonically increasing token for this acquisition. It rises whenever the + lock changes hands and stays the same across renewals of one lease. Pass it + to the resource you are protecting and reject any write carrying a token + lower than the highest already seen; that is what stops a displaced holder + from writing after its lease lapsed. + required: + - expires_at + - fencing_token + ProjectLockState: + type: object + additionalProperties: false + properties: + held: + type: boolean + description: | + Whether the lock is unavailable right now. False means an acquire would + succeed. It remains true during the brief grace window after expiry. + expires_at: type: string format: date-time + description: Advisory lease expiry timestamp in UTC. Present only when held. + fencing_token: + type: integer + format: int64 + description: Current holder's fencing token. Present only when held. required: - - template_type - - subject - - html_body - - text_body - Error: + - held + ConnectProjectGitRequest: type: object properties: - error: + connection_id: type: string + format: uuid + description: The caller's user_git_connections row (see /user/git/connections). + installation_id: + type: integer + format: int64 + repository_id: + type: integer + format: int64 + description: Stable GitHub repository id (repository.id), the preferred selector. Either repository_id or repo_full_name is required; when both are given they must identify the same live repository. + repo_full_name: + type: string + deprecated: true + description: Deprecated selector kept for a compatibility window; prefer repository_id. Either repository_id or repo_full_name is required. + root_directory: + type: string + description: Monorepo subdirectory the project builds from. Omit for the repo root. + production_branch: + type: string + deprecated: true + description: Deprecated. The deployment branch always follows the repository's GitHub default branch; when given it must equal that default branch. New callers omit it. required: - - error + - connection_id + - installation_id Frontend: type: object properties: @@ -8212,6 +10093,14 @@ components: description: Optional relative POSIX path from the uploaded archive root to the Next.js app that is deployed. status: type: string + description: | + Frontend lifecycle status. `degraded` means the regional runtime remains + available but edge synchronization exhausted its immediate retries; Volcano + retries edge recovery without rebuilding the frontend, and stops once a new + deployment is queued or the retry budget runs out, leaving the frontend + `degraded` until the next redeploy. A redeploy that fails over a serving + frontend stays `active` on the previous deployment, so `failed` means no + deployment is serving. enum: - provisioning - active @@ -8357,6 +10246,10 @@ components: - delete status: type: string + description: | + Deployment lifecycle status. A `degraded` redeploy remains available while + edge-only recovery is retried. A `failed` redeploy is recorded here while the + frontend keeps serving its previous deployment. enum: - queued - provisioning @@ -8372,8 +10265,6 @@ components: type: string artifact_version: type: string - cloudwatch_log_group: - type: string site_url: type: string cloudformation_stack_id: @@ -8390,6 +10281,8 @@ components: codebuild_duration_recorded_at: type: string format: date-time + progress: + $ref: '#/components/schemas/DeploymentProgress' error_message: type: string created_at: @@ -8616,14 +10509,6 @@ components: type: string artifact_version: type: string - compile_log_group: - type: string - compile_log_stream: - type: string - publish_log_group: - type: string - publish_log_stream: - type: string codebuild_duration_seconds: type: integer format: int64 @@ -8634,6 +10519,8 @@ components: codebuild_duration_recorded_at: type: string format: date-time + progress: + $ref: '#/components/schemas/DeploymentProgress' error_message: type: string completed_at: @@ -8730,18 +10617,8 @@ components: $ref: '#/components/schemas/LogRequestResource' q: type: string - description: Optional free-text search query for log messages. - levels: - type: array - description: Canonical lowercase log levels to filter by. If omitted, empty, or all levels are selected, no level filter is applied. - items: - $ref: '#/components/schemas/LiveLogLevel' - regions: - type: array - maxItems: 25 - description: Regions to filter by, for example `["us-east-1", "eu-west-1"]`. If omitted or empty, aggregate all deployed regions. - items: - type: string + maxLength: 512 + description: Optional activity query. Supports quoted text, implicit AND, AND/OR/NOT, parentheses, and fields such as `level`, `region`, `invocation.id`, `resource.id`, `resource.name`, `function`, `frontend`, `database`, and `body`. start_time: type: string format: date-time @@ -8780,18 +10657,8 @@ components: $ref: '#/components/schemas/LogRequestResource' q: type: string - description: Optional free-text search query for log messages. - levels: - type: array - description: Canonical lowercase log levels to filter by. If omitted, empty, or all levels are selected, no level filter is applied. - items: - $ref: '#/components/schemas/LiveLogLevel' - regions: - type: array - maxItems: 25 - description: Regions to filter by, for example `["us-east-1", "eu-west-1"]`. If omitted or empty, search all deployed regions. - items: - type: string + maxLength: 512 + description: Optional log query. Supports quoted text, implicit AND, AND/OR/NOT, parentheses, and fields such as `level`, `region`, `invocation.id`, `resource.id`, `resource.name`, `function`, `frontend`, `database`, and `body`. start_time: type: string format: date-time @@ -8813,22 +10680,15 @@ components: - resource LogStreamRequest: type: object - description: Stream request for live project logs. Text search, pagination cursors, and fixed end times are not supported. + description: Stream request for live project logs. Pagination cursors and fixed end times are not supported. additionalProperties: false properties: resource: $ref: '#/components/schemas/LogRequestResource' - levels: - type: array - description: Canonical lowercase log levels to filter by. If omitted, empty, or all levels are selected, no level filter is applied. - items: - $ref: '#/components/schemas/LiveLogLevel' - regions: - type: array - maxItems: 25 - description: Regions to filter by, for example `["us-east-1", "eu-west-1"]`. If omitted or empty, stream all deployed regions. - items: - type: string + q: + type: string + maxLength: 512 + description: Optional log query using the same syntax as search and activity requests. start_time: type: string format: date-time @@ -8968,6 +10828,10 @@ components: format: date-time last_error: type: string + run_count: + type: integer + format: int64 + description: Total number of times this scheduler has executed. 0 for a scheduler that has never run. created_at: type: string format: date-time @@ -8989,6 +10853,12 @@ components: type: integer has_more: type: boolean + next_cursor: + type: string + description: Opaque cursor for the next page (cursor pagination only; present if has_more is true) + prev_cursor: + type: string + description: Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. required: - data - page @@ -9034,7 +10904,7 @@ components: - reset-password LogEvent: type: object - description: Normalized historical log event returned by paginated log APIs. + description: Historical log event returned by log APIs. properties: id: type: string @@ -9092,7 +10962,8 @@ components: "Bandwidth Total (Bytes)", or "Database Storage (Bytes)"). Byte-based metrics are reported in bytes. "Bandwidth Total (Bytes)" is derived (ingress + egress) and is not billed separately. "Database Storage (Bytes)" is a current observed gauge, - not a cumulative counter. + not a cumulative counter. It is the sum of the latest `pg_database_size` samples + exposed as `storage_bytes` by the project's database list. total: type: integer format: int64 @@ -9217,6 +11088,12 @@ components: next: type: string description: URL path to next page (only present if has_more is true) + next_cursor: + type: string + description: Opaque cursor for the next page (cursor pagination only; present if has_more is true) + prev_cursor: + type: string + description: Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. required: - data - page @@ -9272,7 +11149,13 @@ components: description: Whether there are more pages available next: type: string - description: URL path to next page (only present if has_more is true) + description: URL path to next page (offset pagination only; present if has_more is true) + next_cursor: + type: string + description: Opaque cursor for the next page (cursor pagination only; present if has_more is true) + prev_cursor: + type: string + description: Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. required: - data - page @@ -9329,6 +11212,12 @@ components: next: type: string description: URL path to next page (only present if has_more is true) + next_cursor: + type: string + description: Opaque cursor for the next page (cursor pagination only; present if has_more is true) + prev_cursor: + type: string + description: Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. required: - data - page @@ -9384,7 +11273,13 @@ components: description: Whether there are more pages available next: type: string - description: URL path to next page (only present if has_more is true) + description: URL path to next page (offset pagination only; present if has_more is true) + next_cursor: + type: string + description: Opaque cursor for the next page (cursor pagination only; present if has_more is true) + prev_cursor: + type: string + description: Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. required: - data - page @@ -9455,13 +11350,46 @@ components: description: Whether there are more pages available next: type: string - description: URL path to next page (only present if has_more is true) + description: URL path to next page (offset pagination only; present if has_more is true) + next_cursor: + type: string + description: Opaque cursor for the next page (cursor pagination only; present if has_more is true) + prev_cursor: + type: string + description: Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. required: - data - page - limit - total - has_more + PaginatedStorageBuckets: + type: object + description: Cursor-paginated storage buckets (returned only when cursor pagination is requested). + properties: + data: + type: array + items: + $ref: '#/components/schemas/StorageBucket' + limit: + type: integer + description: Number of items per page + total: + type: integer + description: Total number of items matching the query + has_more: + type: boolean + description: Whether a next page exists + next_cursor: + type: string + description: Opaque cursor for the next page (present if has_more is true) + prev_cursor: + type: string + description: Opaque cursor for the previous page (present when a previous page exists). Send as `ending_before`. + required: + - data + - limit + - has_more PaginatedVariables: type: object properties: @@ -9484,6 +11412,12 @@ components: next: type: string description: URL path to next page (only present if has_more is true) + next_cursor: + type: string + description: Opaque cursor for the next page (cursor pagination only; present if has_more is true) + prev_cursor: + type: string + description: Opaque cursor for the previous page (cursor pagination only; present when a previous page exists). Send as `ending_before`. required: - data - page @@ -9812,6 +11746,8 @@ components: properties: min_length: type: integer + minimum: 15 + maximum: 128 require_uppercase: type: boolean require_lowercase: @@ -10187,6 +12123,7 @@ components: name: type: string minLength: 1 + maxLength: 200 cron: type: string description: 5-field UTC cron expression @@ -10578,6 +12515,8 @@ components: completed_at: type: string format: date-time + progress: + $ref: '#/components/schemas/DeploymentProgress' created_at: type: string format: date-time @@ -10610,6 +12549,42 @@ components: - type - id - name + ProjectDeploymentSummary: + type: object + description: Aggregate deployment statistics for one resource pipeline. + properties: + deployment_count: + type: integer + description: All deployment attempts matching the filters. + successful_count: + type: integer + description: Attempts that reached active or deleted. + failed_count: + type: integer + description: Attempts that reached failed or degraded. + canceled_count: + type: integer + description: Superseded attempts, excluded from success rate and duration. + success_rate: + type: number + format: double + minimum: 0 + maximum: 1 + nullable: true + description: Successful attempts divided by successful plus failed attempts. + median_build_duration_seconds: + type: number + format: double + minimum: 0 + nullable: true + description: Median CodeBuild duration across eligible completed attempts. + required: + - deployment_count + - successful_count + - failed_count + - canceled_count + - success_rate + - median_build_duration_seconds ProjectUsageResponse: type: object description: Aggregated usage metrics for a project. @@ -10776,7 +12751,7 @@ components: description: | Operations this key may perform. ["*"] grants full admin access (default for keys created without an explicit scope). Scoped keys - list specific permissions, e.g. ["functions.invoke"]. + list specific permissions, e.g. ["functions.invoke", "locks.manage"]. example: - '*' created_at: @@ -11123,6 +13098,8 @@ components: type: integer min_password_length: type: integer + minimum: 15 + maximum: 128 require_uppercase: type: boolean require_lowercase: @@ -11161,6 +13138,9 @@ components: email_confirmation_timeout: type: integer description: Email confirmation token expiry in seconds. + auto_link_verified_oauth: + type: boolean + description: Link a verified OAuth identity to an existing confirmed account with the same email instead of returning a conflict. Requires require_email_confirmation to be true. email_enabled: type: boolean description: Enable transactional email sending. Cannot be false while require_email_confirmation is true. @@ -11177,7 +13157,9 @@ components: smtp_password: type: string format: password - description: SMTP password (sensitive). Encrypted at rest (AES-256-GCM) when stored. + writeOnly: true + minLength: 1 + description: Replacement SMTP password. Omit this field to preserve the configured password. The value is encrypted at rest and never returned. smtp_use_tls: type: boolean email_confirmation_subject: @@ -11260,6 +13242,7 @@ components: properties: name: type: string + maxLength: 200 enabled: type: boolean schedule: @@ -11528,6 +13511,79 @@ components: - mean_exec_time_seconds - min_exec_time_seconds - rows_processed + DeploymentPhase: + type: object + description: Timing and outcome for one normalized deployment pipeline phase. + properties: + name: + type: string + enum: + - queue + - checkout + - build + - image + - provisioning + - rollout + - verification + status: + type: string + enum: + - pending + - in_progress + - succeeded + - failed + - skipped + started_at: + type: string + format: date-time + completed_at: + type: string + format: date-time + duration_seconds: + type: integer + format: int64 + minimum: 0 + required: + - name + - status + DeploymentProgress: + type: object + description: Normalized live progress derived from the deployment workflow and build phases. + properties: + current_phase: + type: string + enum: + - queue + - checkout + - build + - image + - provisioning + - rollout + - verification + started_at: + type: string + format: date-time + completed_at: + type: string + format: date-time + elapsed_seconds: + type: integer + format: int64 + minimum: 0 + phases: + type: array + minItems: 7 + maxItems: 7 + items: + $ref: '#/components/schemas/DeploymentPhase' + updated_at: + type: string + format: date-time + required: + - started_at + - elapsed_seconds + - phases + - updated_at LogDeploymentRequestSelector: type: object description: Deployment log selector for deployable resources.