diff --git a/web/contract/generated/enterprise/orpc.gen.ts b/web/contract/generated/enterprise/orpc.gen.ts index 6b9b76470a..73eb850001 100644 --- a/web/contract/generated/enterprise/orpc.gen.ts +++ b/web/contract/generated/enterprise/orpc.gen.ts @@ -7,6 +7,63 @@ import { zConsoleSsoOAuth2LoginResponse, zConsoleSsoOidcLoginResponse, zConsoleSsoSamlLoginResponse, + zEnterpriseAppDeployConsoleCancelRuntimeDeploymentBody, + zEnterpriseAppDeployConsoleCancelRuntimeDeploymentPath, + zEnterpriseAppDeployConsoleCancelRuntimeDeploymentResponse, + zEnterpriseAppDeployConsoleCreateAppInstanceBody, + zEnterpriseAppDeployConsoleCreateAppInstanceResponse, + zEnterpriseAppDeployConsoleCreateDeploymentBody, + zEnterpriseAppDeployConsoleCreateDeploymentPath, + zEnterpriseAppDeployConsoleCreateDeploymentResponse, + zEnterpriseAppDeployConsoleCreateDeveloperApiKeyBody, + zEnterpriseAppDeployConsoleCreateDeveloperApiKeyPath, + zEnterpriseAppDeployConsoleCreateDeveloperApiKeyResponse, + zEnterpriseAppDeployConsoleCreateReleaseBody, + zEnterpriseAppDeployConsoleCreateReleasePath, + zEnterpriseAppDeployConsoleCreateReleaseResponse, + zEnterpriseAppDeployConsoleDeleteAppInstancePath, + zEnterpriseAppDeployConsoleDeleteAppInstanceResponse, + zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyPath, + zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponse, + zEnterpriseAppDeployConsoleGetAppInstanceAccessPath, + zEnterpriseAppDeployConsoleGetAppInstanceAccessResponse, + zEnterpriseAppDeployConsoleGetAppInstanceOverviewPath, + zEnterpriseAppDeployConsoleGetAppInstanceOverviewResponse, + zEnterpriseAppDeployConsoleGetAppInstanceSettingsPath, + zEnterpriseAppDeployConsoleGetAppInstanceSettingsResponse, + zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyPath, + zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponse, + zEnterpriseAppDeployConsoleListAppInstancesQuery, + zEnterpriseAppDeployConsoleListAppInstancesResponse, + zEnterpriseAppDeployConsoleListDeploymentBindingOptionsPath, + zEnterpriseAppDeployConsoleListDeploymentBindingOptionsResponse, + zEnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponse, + zEnterpriseAppDeployConsoleListReleasesPath, + zEnterpriseAppDeployConsoleListReleasesQuery, + zEnterpriseAppDeployConsoleListReleasesResponse, + zEnterpriseAppDeployConsoleListRuntimeInstancesPath, + zEnterpriseAppDeployConsoleListRuntimeInstancesResponse, + zEnterpriseAppDeployConsolePreviewReleaseBody, + zEnterpriseAppDeployConsolePreviewReleasePath, + zEnterpriseAppDeployConsolePreviewReleaseResponse, + zEnterpriseAppDeployConsoleSearchAccessSubjectsPath, + zEnterpriseAppDeployConsoleSearchAccessSubjectsQuery, + zEnterpriseAppDeployConsoleSearchAccessSubjectsResponse, + zEnterpriseAppDeployConsoleUndeployRuntimeInstanceBody, + zEnterpriseAppDeployConsoleUndeployRuntimeInstancePath, + zEnterpriseAppDeployConsoleUndeployRuntimeInstanceResponse, + zEnterpriseAppDeployConsoleUpdateAccessChannelsBody, + zEnterpriseAppDeployConsoleUpdateAccessChannelsPath, + zEnterpriseAppDeployConsoleUpdateAccessChannelsResponse, + zEnterpriseAppDeployConsoleUpdateAppInstanceBody, + zEnterpriseAppDeployConsoleUpdateAppInstancePath, + zEnterpriseAppDeployConsoleUpdateAppInstanceResponse, + zEnterpriseAppDeployConsoleUpdateDeveloperApiBody, + zEnterpriseAppDeployConsoleUpdateDeveloperApiPath, + zEnterpriseAppDeployConsoleUpdateDeveloperApiResponse, + zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyBody, + zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyPath, + zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponse, zWebAppAuthGetGroupSubjectsQuery, zWebAppAuthGetGroupSubjectsResponse, zWebAppAuthGetWebAppAccessModeQuery, @@ -21,6 +78,344 @@ import { zWebAppAuthUpdateWebAppWhitelistSubjectsResponse, } from './zod.gen' +export const listAppInstances = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListAppInstances', + path: '/enterprise/app-instances', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ query: zEnterpriseAppDeployConsoleListAppInstancesQuery.optional() })) + .output(zEnterpriseAppDeployConsoleListAppInstancesResponse) + +export const createAppInstance = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CreateAppInstance', + path: '/enterprise/app-instances', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ body: zEnterpriseAppDeployConsoleCreateAppInstanceBody })) + .output(zEnterpriseAppDeployConsoleCreateAppInstanceResponse) + +export const deleteAppInstance = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'EnterpriseAppDeployConsole_DeleteAppInstance', + path: '/enterprise/app-instances/{appInstanceId}', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleDeleteAppInstancePath })) + .output(zEnterpriseAppDeployConsoleDeleteAppInstanceResponse) + +export const updateAppInstance = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'EnterpriseAppDeployConsole_UpdateAppInstance', + path: '/enterprise/app-instances/{appInstanceId}', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUpdateAppInstanceBody, + params: zEnterpriseAppDeployConsoleUpdateAppInstancePath, + }), + ) + .output(zEnterpriseAppDeployConsoleUpdateAppInstanceResponse) + +export const getAppInstanceAccess = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_GetAppInstanceAccess', + path: '/enterprise/app-instances/{appInstanceId}/access', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleGetAppInstanceAccessPath })) + .output(zEnterpriseAppDeployConsoleGetAppInstanceAccessResponse) + +export const updateAccessChannels = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'EnterpriseAppDeployConsole_UpdateAccessChannels', + path: '/enterprise/app-instances/{appInstanceId}/access-channels', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUpdateAccessChannelsBody, + params: zEnterpriseAppDeployConsoleUpdateAccessChannelsPath, + }), + ) + .output(zEnterpriseAppDeployConsoleUpdateAccessChannelsResponse) + +export const searchAccessSubjects = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_SearchAccessSubjects', + path: '/enterprise/app-instances/{appInstanceId}/access-subjects:search', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + params: zEnterpriseAppDeployConsoleSearchAccessSubjectsPath, + query: zEnterpriseAppDeployConsoleSearchAccessSubjectsQuery.optional(), + }), + ) + .output(zEnterpriseAppDeployConsoleSearchAccessSubjectsResponse) + +export const createDeveloperApiKey = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CreateDeveloperApiKey', + path: '/enterprise/app-instances/{appInstanceId}/api-keys', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleCreateDeveloperApiKeyBody, + params: zEnterpriseAppDeployConsoleCreateDeveloperApiKeyPath, + }), + ) + .output(zEnterpriseAppDeployConsoleCreateDeveloperApiKeyResponse) + +export const deleteDeveloperApiKey = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'EnterpriseAppDeployConsole_DeleteDeveloperApiKey', + path: '/enterprise/app-instances/{appInstanceId}/api-keys/{apiKeyId}', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyPath })) + .output(zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponse) + +export const listDeploymentBindingOptions = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListDeploymentBindingOptions', + path: '/enterprise/app-instances/{appInstanceId}/deployment-binding-options', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleListDeploymentBindingOptionsPath })) + .output(zEnterpriseAppDeployConsoleListDeploymentBindingOptionsResponse) + +export const createDeployment = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CreateDeployment', + path: '/enterprise/app-instances/{appInstanceId}/deployments', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleCreateDeploymentBody, + params: zEnterpriseAppDeployConsoleCreateDeploymentPath, + }), + ) + .output(zEnterpriseAppDeployConsoleCreateDeploymentResponse) + +export const updateDeveloperApi = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'EnterpriseAppDeployConsole_UpdateDeveloperApi', + path: '/enterprise/app-instances/{appInstanceId}/developer-api', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUpdateDeveloperApiBody, + params: zEnterpriseAppDeployConsoleUpdateDeveloperApiPath, + }), + ) + .output(zEnterpriseAppDeployConsoleUpdateDeveloperApiResponse) + +export const getEnvironmentAccessPolicy = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_GetEnvironmentAccessPolicy', + path: '/enterprise/app-instances/{appInstanceId}/environments/{environmentId}/access-policy', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyPath })) + .output(zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponse) + +export const updateEnvironmentAccessPolicy = oc + .route({ + inputStructure: 'detailed', + method: 'PUT', + operationId: 'EnterpriseAppDeployConsole_UpdateEnvironmentAccessPolicy', + path: '/enterprise/app-instances/{appInstanceId}/environments/{environmentId}/access-policy', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyBody, + params: zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyPath, + }), + ) + .output(zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponse) + +export const getAppInstanceOverview = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_GetAppInstanceOverview', + path: '/enterprise/app-instances/{appInstanceId}/overview', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleGetAppInstanceOverviewPath })) + .output(zEnterpriseAppDeployConsoleGetAppInstanceOverviewResponse) + +export const listReleases = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListReleases', + path: '/enterprise/app-instances/{appInstanceId}/releases', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + params: zEnterpriseAppDeployConsoleListReleasesPath, + query: zEnterpriseAppDeployConsoleListReleasesQuery.optional(), + }), + ) + .output(zEnterpriseAppDeployConsoleListReleasesResponse) + +export const createRelease = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CreateRelease', + path: '/enterprise/app-instances/{appInstanceId}/releases', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleCreateReleaseBody, + params: zEnterpriseAppDeployConsoleCreateReleasePath, + }), + ) + .output(zEnterpriseAppDeployConsoleCreateReleaseResponse) + +export const previewRelease = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_PreviewRelease', + path: '/enterprise/app-instances/{appInstanceId}/releases:preview', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsolePreviewReleaseBody, + params: zEnterpriseAppDeployConsolePreviewReleasePath, + }), + ) + .output(zEnterpriseAppDeployConsolePreviewReleaseResponse) + +export const listRuntimeInstances = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListRuntimeInstances', + path: '/enterprise/app-instances/{appInstanceId}/runtime-instances', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleListRuntimeInstancesPath })) + .output(zEnterpriseAppDeployConsoleListRuntimeInstancesResponse) + +export const cancelRuntimeDeployment = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CancelRuntimeDeployment', + path: '/enterprise/app-instances/{appInstanceId}/runtime-instances/{runtimeInstanceId}/deployment:cancel', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleCancelRuntimeDeploymentBody, + params: zEnterpriseAppDeployConsoleCancelRuntimeDeploymentPath, + }), + ) + .output(zEnterpriseAppDeployConsoleCancelRuntimeDeploymentResponse) + +export const undeployRuntimeInstance = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_UndeployRuntimeInstance', + path: '/enterprise/app-instances/{appInstanceId}/runtime-instances/{runtimeInstanceId}:undeploy', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUndeployRuntimeInstanceBody, + params: zEnterpriseAppDeployConsoleUndeployRuntimeInstancePath, + }), + ) + .output(zEnterpriseAppDeployConsoleUndeployRuntimeInstanceResponse) + +export const getAppInstanceSettings = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_GetAppInstanceSettings', + path: '/enterprise/app-instances/{appInstanceId}/settings', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleGetAppInstanceSettingsPath })) + .output(zEnterpriseAppDeployConsoleGetAppInstanceSettingsResponse) + +export const listDeploymentEnvironmentOptions = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListDeploymentEnvironmentOptions', + path: '/enterprise/deployment-environment-options', + tags: ['EnterpriseAppDeployConsole'], + }) + .output(zEnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponse) + +export const enterpriseAppDeployConsole = { + listAppInstances, + createAppInstance, + deleteAppInstance, + updateAppInstance, + getAppInstanceAccess, + updateAccessChannels, + searchAccessSubjects, + createDeveloperApiKey, + deleteDeveloperApiKey, + listDeploymentBindingOptions, + createDeployment, + updateDeveloperApi, + getEnvironmentAccessPolicy, + updateEnvironmentAccessPolicy, + getAppInstanceOverview, + listReleases, + createRelease, + previewRelease, + listRuntimeInstances, + cancelRuntimeDeployment, + undeployRuntimeInstance, + getAppInstanceSettings, + listDeploymentEnvironmentOptions, +} + export const oAuth2Login = oc .route({ inputStructure: 'detailed', @@ -133,6 +528,7 @@ export const webAppAuth = { } export const contract = { + enterpriseAppDeployConsole, consoleSso, webAppAuth, } diff --git a/web/contract/generated/enterprise/types.gen.ts b/web/contract/generated/enterprise/types.gen.ts index b747c4baa8..56228f2738 100644 --- a/web/contract/generated/enterprise/types.gen.ts +++ b/web/contract/generated/enterprise/types.gen.ts @@ -4,6 +4,46 @@ export type ClientOptions = { baseUrl: `${string}://${string}` | (string & {}) } +export type AccessChannels = { + enabled?: boolean + webappRows?: Array + cli?: CliAccess +} + +export type AccessModeOption = { + mode?: string + label?: string + disabled?: boolean + selected?: boolean +} + +export type AccessPolicyDetail = { + accessMode?: string + subjects?: Array + options?: Array +} + +export type AccessStatus = { + accessChannelsEnabled?: boolean + webappUrl?: string + cliUrl?: string + developerApiEnabled?: boolean + apiKeyCount?: number +} + +export type AccessSubject = { + subjectId?: string + subjectType?: string +} + +export type AccessSubjectDisplay = { + id?: string + subjectType?: string + name?: string + avatarUrl?: string + memberCount?: string +} + export type Account = { id?: string email?: string @@ -30,9 +70,104 @@ export type AccountInWorkspace = { role?: string } -export type AddGroupAppsRequest = { +export type AckDeploymentReply = { + accepted?: boolean + newVersion?: string +} + +export type AckDeploymentReq = { + deploymentId?: string + instanceId?: string + expectedVersion?: string + status?: string + observedReleaseId?: string + lastError?: LastError +} + +export type AppInstanceBasicInfo = { id?: string - app_ids?: Array + name?: string + description?: string + sourceAppId?: string + sourceAppName?: string + mode?: string + createdAt?: string +} + +export type AppInstanceCard = { + id?: string + name?: string + icon?: string + mode?: string + sourceAppName?: string + statuses?: Array + lastDeployedAt?: string +} + +export type AppRunnerBatchRuntimeArtifactReply = { + results?: Array +} + +export type AppRunnerBatchRuntimeArtifactRequest = { + artifacts?: Array +} + +export type AppRunnerBootstrapAssignment = { + appId?: string + environmentId?: string + workflowId?: string + instanceId?: string + workspaceId?: string + instanceVersion?: string + bindingSnapshotVersion?: string + executionTokenVersion?: string + executionToken?: string + releaseId?: string +} + +export type AppRunnerBootstrapReply = { + runnerId?: string + assignmentRevision?: string + assignments?: Array +} + +export type AppRunnerBootstrapRequest = { + runner?: AppRunnerRunnerInfo +} + +export type AppRunnerRunnerInfo = { + hostname?: string +} + +export type AppRunnerRuntimeArtifactReply = { + dslYaml?: string + bindingSnapshotVersion?: string + bindingSnapshot?: { + [key: string]: unknown + } +} + +export type AppRunnerRuntimeArtifactRequest = { + instanceId?: string + releaseId?: string + bindingSnapshotVersion?: string +} + +export type AppRunnerRuntimeArtifactResult = { + instanceId?: string + releaseId?: string + artifact?: AppRunnerRuntimeArtifactReply + errorCode?: string + errorMessage?: string +} + +export type AppRunnerTokenExchangeReply = { + accessToken?: string + expiresAt?: string +} + +export type AppRunnerTokenExchangeRequest = { + joinToken?: string } export type AuthSettingsReply = { @@ -58,6 +193,15 @@ export type AuthSettingsReq = { ssoSettings?: SsoSettings } +export type BootstrapProgress = { + currentStep?: string + completedSteps?: Array + attemptCount?: number + lastAttemptAt?: string + lastErrorCode?: string + lastErrorMessage?: string +} + export type BrandingInfo = { enabled?: boolean applicationTitle?: string @@ -66,6 +210,15 @@ export type BrandingInfo = { favicon?: string } +export type CancelRuntimeDeploymentReply = { + status?: string +} + +export type CancelRuntimeDeploymentReq = { + appInstanceId?: string + runtimeInstanceId?: string +} + export type CheckPasswordStatusReply = { requirePasswordChange?: boolean changeReason?: number @@ -77,10 +230,82 @@ export type ClearDefaultWorkspaceReply = { [key: string]: unknown } +export type CliAccess = { + url?: string +} + +export type ConsoleEnvironment = { + id?: string + name?: string + runtime?: string + type?: string + status?: string +} + +export type ConsoleRelease = { + id?: string + name?: string + shortCommitId?: string + createdAt?: string +} + +export type ConsoleUser = { + id?: string + name?: string +} + +export type CreateAppInstanceReply = { + appInstanceId?: string + initialRelease?: ConsoleRelease +} + +export type CreateAppInstanceReq = { + sourceAppId?: string + name?: string + description?: string +} + export type CreateBearerTokenResponse = { token?: string } +export type CreateDeploymentReply = { + runtimeInstanceId?: string + deploymentId?: string + status?: string +} + +export type CreateDeploymentReq = { + appInstanceId?: string + environmentId?: string + releaseId?: string + bindings?: Array +} + +export type CreateDeveloperApiKeyReply = { + apiKey?: DeveloperApiKeyRow + token?: string +} + +export type CreateDeveloperApiKeyReq = { + appInstanceId?: string + environmentId?: string + name?: string +} + +export type CreateEnvironmentReply = { + environment?: Environment +} + +export type CreateEnvironmentReq = { + name?: string + description?: string + mode?: number + backend?: number + k8s?: K8sEnvironmentConfig + host?: HostEnvironmentConfig +} + export type CreateMemberReply = { id?: string password?: string @@ -104,7 +329,12 @@ export type CreateNewGroupsRes = { groups?: Array } -export type CreateResourceGroupRequest = { +export type CreateReleaseReply = { + release?: ConsoleRelease +} + +export type CreateReleaseReq = { + appInstanceId?: string name?: string description?: string } @@ -164,10 +394,27 @@ export type DashboardSsosamlLoginReply = { url?: string } +export type DeleteAppInstanceReply = { + [key: string]: unknown +} + +export type DeleteDeveloperApiKeyReply = { + [key: string]: unknown +} + +export type DeleteEnvironmentReply = { + [key: string]: unknown +} + export type DeleteGroupsRes = { message?: string } +export type DeleteGuard = { + canDelete?: boolean + disabledReason?: string +} + export type DeleteMemberReply = { account?: Account } @@ -184,6 +431,70 @@ export type DeleteWorkspaceReply = { [key: string]: unknown } +export type DeployedEnvironment = { + environmentId?: string + environmentName?: string +} + +export type DeploymentBindingOptionSlot = { + slot?: string + kind?: string + label?: string + required?: boolean + candidates?: Array + envVarCandidates?: Array +} + +export type DeploymentCredentialOption = { + credentialId?: string + displayName?: string + pluginId?: string + pluginName?: string + pluginVersion?: string +} + +export type DeploymentEnvVarOption = { + envVarId?: string + name?: string + valueType?: string + displayValue?: string +} + +export type DeploymentEnvironmentOption = { + id?: string + name?: string + type?: string + backend?: string + status?: string + managedBy?: string + deployable?: boolean + disabledReason?: string +} + +export type DeploymentRuntimeBinding = { + slot?: string + credentialId?: string + envVarId?: string +} + +export type DeploymentStatusRow = { + environment?: ConsoleEnvironment + release?: ConsoleRelease + status?: string +} + +export type DeveloperApiAccess = { + enabled?: boolean + apiKeys?: Array +} + +export type DeveloperApiKeyRow = { + id?: string + name?: string + environment?: ConsoleEnvironment + maskedKey?: string +} + export type EndpointReply = { mode?: number metricsEndpoint?: OtelExporterEndpoint @@ -196,6 +507,55 @@ export type EnterpriseSystemUserSettingReply = { enableEmailPasswordLogin?: boolean } +export type Environment = { + id?: string + name?: string + description?: string + mode?: number + namespace?: string + apiServer?: string + status?: number + statusMessage?: string + bootstrapProgress?: BootstrapProgress + managedBy?: string + createdAt?: string + updatedAt?: string + backend?: number + host?: string +} + +export type EnvironmentAccessRow = { + environment?: ConsoleEnvironment + currentRelease?: ConsoleRelease + accessMode?: string + accessModeLabel?: string + hint?: string +} + +export type EnvironmentFilter = { + id?: string + name?: string + kind?: string +} + +export type GetAppInstanceAccessReply = { + permissions?: Array + accessChannels?: AccessChannels + developerApi?: DeveloperApiAccess +} + +export type GetAppInstanceOverviewReply = { + instance?: AppInstanceBasicInfo + deployments?: Array + access?: AccessStatus +} + +export type GetAppInstanceSettingsReply = { + name?: string + description?: string + deleteGuard?: DeleteGuard +} + export type GetBearerTokenResponse = { maskedToken?: string } @@ -211,6 +571,14 @@ export type GetDefaultWorkspaceReply = { workspace?: Workspace } +export type GetEnvironmentAccessPolicyReply = { + policy?: AccessPolicyDetail +} + +export type GetEnvironmentReply = { + environment?: Environment +} + export type GetGroupSubjectsRes = { subjects?: Array } @@ -219,6 +587,15 @@ export type GetGroupsRes = { groups?: Array } +export type GetInstanceReply = { + instanceId?: string + status?: string + desiredReleaseId?: string + observedReleaseId?: string + currentDeploymentId?: string + version?: string +} + export type GetJoinedGroupsRes = { groups?: Array } @@ -275,22 +652,16 @@ export type GetWorkspaceReply = { workspace?: Workspace } -export type GroupAppItem = { - app_id?: string - app_name?: string - workspace_id?: string - workspace_name?: string - app_status?: number - token_usage?: string - rpm?: string - concurrency?: string -} - export type HealthzReply = { message?: string status?: string } +export type HostEnvironmentConfig = { + machineId?: string + joinTokenHash?: string +} + export type InfoConfigReply = { SSOEnforcedForSignin?: boolean SSOEnforcedForSigninProtocol?: string @@ -306,11 +677,6 @@ export type InfoConfigReply = { PluginInstallationPermission?: PluginInstallationPermissionInfo } -export type InnerAdmission = { - marker?: string - concurrencyGroupIds?: Array -} - export type InnerBatchGetWebAppAccessModesByIdReq = { appIds?: Array } @@ -332,10 +698,42 @@ export type InnerBatchIsUserAllowedToAccessWebAppRes = { } } +export type InnerCheckAppDeployAccessReply = { + allowed?: boolean + matchedPolicyId?: string + matchedScopeType?: string + reason?: string + cacheTtlSeconds?: number +} + +export type InnerCheckAppDeployAccessReq = { + appInstanceId?: string + environmentId?: string + principalType?: string + principalId?: string +} + export type InnerCleanAppRes = { message?: string } +export type InnerGetTokenRouteReply = { + environmentId?: string + namespace?: string + serviceName?: string + servicePort?: number + environmentStatus?: string + appId?: string + tenantId?: string + instanceId?: string + observedReleaseId?: string + instanceStatus?: string +} + +export type InnerGetTokenRouteReq = { + token?: string +} + export type InnerGetWebAppAccessModeByCodeRes = { accessMode?: string } @@ -344,34 +742,10 @@ export type InnerGetWebAppAccessModeByIdRes = { accessMode?: string } -export type InnerGroupConfig = { - id?: string - enabled?: boolean - membershipId?: string - limits?: Array -} - export type InnerIsUserAllowedToAccessWebAppRes = { result?: boolean } -export type InnerReleaseAdmissionRequest = { - admission?: InnerAdmission -} - -export type InnerReleaseAdmissionResponse = { - [key: string]: unknown -} - -export type InnerResolveResponse = { - appId?: string - groups?: Array - blocked?: boolean - blockGroupId?: string - blockReason?: string - admission?: InnerAdmission -} - export type InnerTryAddAccountToDefaultWorkspaceReply = { workspaceId?: string joined?: boolean @@ -396,6 +770,20 @@ export type JoinWorkspaceReq = { role?: string } +export type K8sEnvironmentConfig = { + namespace?: string + apiServer?: string + caBundle?: string + bearerToken?: string +} + +export type LastError = { + phase?: string + code?: string + message?: string + releaseId?: string +} + export type LicenseInfo = { uuid?: string expiredAt?: string @@ -410,21 +798,28 @@ export type LicenseStatus = { workspaces?: ResourceQuota } -export type LimitConfig = { - type?: number - threshold?: string - action?: number - reached?: boolean -} - export type LimitFields = { workspaceMembers?: number workspaces?: ResourceQuota } -export type ListGroupAppsResponse = { - items?: Array - total?: string +export type ListAppInstancesReply = { + filters?: Array + data?: Array + pagination?: Pagination +} + +export type ListDeploymentBindingOptionsReply = { + slots?: Array +} + +export type ListDeploymentEnvironmentOptionsReply = { + environments?: Array +} + +export type ListEnvironmentsReply = { + data?: Array + pagination?: Pagination } export type ListMembersReply = { @@ -432,9 +827,13 @@ export type ListMembersReply = { pagination?: Pagination } -export type ListResourceGroupsResponse = { - items?: Array - total?: string +export type ListReleasesReply = { + data?: Array + pagination?: Pagination +} + +export type ListRuntimeInstancesReply = { + data?: Array } export type ListSecretKeysReply = { @@ -582,6 +981,31 @@ export type PluginInstallationSettingsReply = { restrictToMarketplaceOnly?: boolean } +export type PreviewReleaseReply = { + release?: ConsoleRelease + bindings?: Array +} + +export type PreviewReleaseReq = { + appInstanceId?: string + releaseId?: string +} + +export type ReleaseRow = { + id?: string + name?: string + createdAt?: string + createdBy?: ConsoleUser + deployedTo?: Array +} + +export type ReleaseRuntimeBinding = { + kind?: string + label?: string + displayValue?: string + valueType?: string +} + export type ResetMemberPasswordReply = { id?: string password?: string @@ -610,35 +1034,21 @@ export type ResetUserPasswordReq = { id?: string } -export type ResourceGroupDetail = { - id?: string - name?: string - description?: string - enabled?: boolean - rpm_limit?: number - rpm_action?: number - concurrency_limit?: number - concurrency_action?: number - token_quota?: string - token_action?: number - created_at?: string - updated_at?: string +export type ResolveCredentialsReply = { + resolved?: Array } -export type ResourceGroupItem = { - id?: string - name?: string - description?: string - enabled?: boolean - rpm_limit?: number - concurrency_limit?: number - token_quota?: string - token_usage?: string - app_count?: string - rpm_status?: number - conc_status?: number - created_at?: string - updated_at?: string +export type ResolveCredentialsReq = { + instanceId?: string + deploymentId?: string + slots?: Array +} + +export type ResolvedCredential = { + slot?: string + credentialId?: string + envVarId?: string + value?: string } export type ResourceQuota = { @@ -647,6 +1057,36 @@ export type ResourceQuota = { enabled?: boolean } +export type RetryEnvironmentReply = { + environment?: Environment +} + +export type RetryEnvironmentReq = { + id?: string +} + +export type RuntimeEndpoints = { + run?: string + health?: string +} + +export type RuntimeInstanceDetail = { + deploymentName?: string + replicas?: number + runtimeMode?: string + runtimeNote?: string + endpoints?: RuntimeEndpoints + bindings?: Array +} + +export type RuntimeInstanceRow = { + id?: string + environment?: ConsoleEnvironment + status?: string + currentRelease?: ConsoleRelease + detail?: RuntimeInstanceDetail +} + export type SamlConfig = { idpSsoUrl?: string certificate?: string @@ -679,21 +1119,8 @@ export type ScimSettings = { lastSyncTime?: string } -export type SearchAppItem = { - app_id?: string - app_name?: string - workspace_id?: string - workspace_name?: string - app_status?: number - icon?: string - icon_type?: string - icon_background?: string - created_by_name?: string -} - -export type SearchAppsResponse = { - items?: Array - total?: string +export type SearchAccessSubjectsReply = { + data?: Array } export type SearchForWhilteListCandidatesRes = { @@ -718,6 +1145,11 @@ export type SetDefaultWorkspaceReq = { id?: string } +export type StatusCount = { + status?: string + count?: number +} + export type Subject = { subjectId?: string subjectType?: string @@ -753,10 +1185,42 @@ export type TestConnectionReply = { error?: string } +export type TestEnvironmentConnectionReply = { + ok?: boolean + reachableServerVersion?: string + namespaceExists?: boolean + missingPermissions?: Array + error?: string + probedAt?: string +} + +export type TestEnvironmentConnectionReq = { + id?: string +} + export type ToggleEndpointRequest = { enabled?: boolean } +export type UndeployRuntimeInstanceReply = { + deploymentId?: string + status?: string +} + +export type UndeployRuntimeInstanceReq = { + appInstanceId?: string + runtimeInstanceId?: string +} + +export type UpdateAccessChannelsReply = { + accessChannels?: AccessChannels +} + +export type UpdateAccessChannelsReq = { + appInstanceId?: string + enabled?: boolean +} + export type UpdateAccessModeReq = { appId?: string accessMode?: string @@ -766,6 +1230,16 @@ export type UpdateAccessModeRes = { message?: string } +export type UpdateAppInstanceReply = { + appInstanceId?: string +} + +export type UpdateAppInstanceReq = { + appInstanceId?: string + name?: string + description?: string +} + export type UpdateBrandingInfoReq = { enabled?: boolean applicationTitle?: string @@ -774,6 +1248,36 @@ export type UpdateBrandingInfoReq = { favicon?: string } +export type UpdateDeveloperApiReply = { + developerApi?: DeveloperApiAccess +} + +export type UpdateDeveloperApiReq = { + appInstanceId?: string + enabled?: boolean +} + +export type UpdateEnvironmentAccessPolicyReply = { + permission?: EnvironmentAccessRow +} + +export type UpdateEnvironmentAccessPolicyReq = { + appInstanceId?: string + environmentId?: string + accessMode?: string + subjects?: Array +} + +export type UpdateEnvironmentReply = { + environment?: Environment +} + +export type UpdateEnvironmentReq = { + id?: string + name?: string + description?: string +} + export type UpdateGroupSubjectsReq = { groupId?: string subjects?: Array @@ -854,19 +1358,6 @@ export type UpdatePluginInstallationSettingsRequest = { restrictToMarketplaceOnly?: boolean } -export type UpdateResourceGroupRequest = { - id?: string - name?: string - description?: string - enabled?: boolean - rpm_limit?: number - rpm_action?: number - concurrency_limit?: number - concurrency_action?: number - token_quota?: string - token_action?: number -} - export type UpdateUserReply = { account?: AccountDetail } @@ -919,6 +1410,11 @@ export type UpdateWorkspaceReq = { status?: string } +export type WebAppAccessRow = { + environment?: ConsoleEnvironment + url?: string +} + export type WebAppAuthInfo = { allowSso?: boolean allowEmailCodeLogin?: boolean @@ -963,6 +1459,385 @@ export type Pagination = { totalPages?: number } +export type EnterpriseAppDeployConsoleListAppInstancesData = { + body?: never + path?: never + query?: { + environmentId?: string + notDeployed?: boolean + query?: string + pageNumber?: number + resultsPerPage?: number + } + url: '/enterprise/app-instances' +} + +export type EnterpriseAppDeployConsoleListAppInstancesResponses = { + 200: ListAppInstancesReply +} + +export type EnterpriseAppDeployConsoleListAppInstancesResponse + = EnterpriseAppDeployConsoleListAppInstancesResponses[keyof EnterpriseAppDeployConsoleListAppInstancesResponses] + +export type EnterpriseAppDeployConsoleCreateAppInstanceData = { + body: CreateAppInstanceReq + path?: never + query?: never + url: '/enterprise/app-instances' +} + +export type EnterpriseAppDeployConsoleCreateAppInstanceResponses = { + 200: CreateAppInstanceReply +} + +export type EnterpriseAppDeployConsoleCreateAppInstanceResponse + = EnterpriseAppDeployConsoleCreateAppInstanceResponses[keyof EnterpriseAppDeployConsoleCreateAppInstanceResponses] + +export type EnterpriseAppDeployConsoleDeleteAppInstanceData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}' +} + +export type EnterpriseAppDeployConsoleDeleteAppInstanceResponses = { + 200: DeleteAppInstanceReply +} + +export type EnterpriseAppDeployConsoleDeleteAppInstanceResponse + = EnterpriseAppDeployConsoleDeleteAppInstanceResponses[keyof EnterpriseAppDeployConsoleDeleteAppInstanceResponses] + +export type EnterpriseAppDeployConsoleUpdateAppInstanceData = { + body: UpdateAppInstanceReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}' +} + +export type EnterpriseAppDeployConsoleUpdateAppInstanceResponses = { + 200: UpdateAppInstanceReply +} + +export type EnterpriseAppDeployConsoleUpdateAppInstanceResponse + = EnterpriseAppDeployConsoleUpdateAppInstanceResponses[keyof EnterpriseAppDeployConsoleUpdateAppInstanceResponses] + +export type EnterpriseAppDeployConsoleGetAppInstanceAccessData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/access' +} + +export type EnterpriseAppDeployConsoleGetAppInstanceAccessResponses = { + 200: GetAppInstanceAccessReply +} + +export type EnterpriseAppDeployConsoleGetAppInstanceAccessResponse + = EnterpriseAppDeployConsoleGetAppInstanceAccessResponses[keyof EnterpriseAppDeployConsoleGetAppInstanceAccessResponses] + +export type EnterpriseAppDeployConsoleUpdateAccessChannelsData = { + body: UpdateAccessChannelsReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/access-channels' +} + +export type EnterpriseAppDeployConsoleUpdateAccessChannelsResponses = { + 200: UpdateAccessChannelsReply +} + +export type EnterpriseAppDeployConsoleUpdateAccessChannelsResponse + = EnterpriseAppDeployConsoleUpdateAccessChannelsResponses[keyof EnterpriseAppDeployConsoleUpdateAccessChannelsResponses] + +export type EnterpriseAppDeployConsoleSearchAccessSubjectsData = { + body?: never + path: { + appInstanceId: string + } + query?: { + keyword?: string + subjectTypes?: Array + } + url: '/enterprise/app-instances/{appInstanceId}/access-subjects:search' +} + +export type EnterpriseAppDeployConsoleSearchAccessSubjectsResponses = { + 200: SearchAccessSubjectsReply +} + +export type EnterpriseAppDeployConsoleSearchAccessSubjectsResponse + = EnterpriseAppDeployConsoleSearchAccessSubjectsResponses[keyof EnterpriseAppDeployConsoleSearchAccessSubjectsResponses] + +export type EnterpriseAppDeployConsoleCreateDeveloperApiKeyData = { + body: CreateDeveloperApiKeyReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/api-keys' +} + +export type EnterpriseAppDeployConsoleCreateDeveloperApiKeyResponses = { + 200: CreateDeveloperApiKeyReply +} + +export type EnterpriseAppDeployConsoleCreateDeveloperApiKeyResponse + = EnterpriseAppDeployConsoleCreateDeveloperApiKeyResponses[keyof EnterpriseAppDeployConsoleCreateDeveloperApiKeyResponses] + +export type EnterpriseAppDeployConsoleDeleteDeveloperApiKeyData = { + body?: never + path: { + appInstanceId: string + apiKeyId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/api-keys/{apiKeyId}' +} + +export type EnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponses = { + 200: DeleteDeveloperApiKeyReply +} + +export type EnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponse + = EnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponses[keyof EnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponses] + +export type EnterpriseAppDeployConsoleListDeploymentBindingOptionsData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/deployment-binding-options' +} + +export type EnterpriseAppDeployConsoleListDeploymentBindingOptionsResponses = { + 200: ListDeploymentBindingOptionsReply +} + +export type EnterpriseAppDeployConsoleListDeploymentBindingOptionsResponse + = EnterpriseAppDeployConsoleListDeploymentBindingOptionsResponses[keyof EnterpriseAppDeployConsoleListDeploymentBindingOptionsResponses] + +export type EnterpriseAppDeployConsoleCreateDeploymentData = { + body: CreateDeploymentReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/deployments' +} + +export type EnterpriseAppDeployConsoleCreateDeploymentResponses = { + 200: CreateDeploymentReply +} + +export type EnterpriseAppDeployConsoleCreateDeploymentResponse + = EnterpriseAppDeployConsoleCreateDeploymentResponses[keyof EnterpriseAppDeployConsoleCreateDeploymentResponses] + +export type EnterpriseAppDeployConsoleUpdateDeveloperApiData = { + body: UpdateDeveloperApiReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/developer-api' +} + +export type EnterpriseAppDeployConsoleUpdateDeveloperApiResponses = { + 200: UpdateDeveloperApiReply +} + +export type EnterpriseAppDeployConsoleUpdateDeveloperApiResponse + = EnterpriseAppDeployConsoleUpdateDeveloperApiResponses[keyof EnterpriseAppDeployConsoleUpdateDeveloperApiResponses] + +export type EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyData = { + body?: never + path: { + appInstanceId: string + environmentId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/environments/{environmentId}/access-policy' +} + +export type EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponses = { + 200: GetEnvironmentAccessPolicyReply +} + +export type EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponse + = EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponses[keyof EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponses] + +export type EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyData = { + body: UpdateEnvironmentAccessPolicyReq + path: { + appInstanceId: string + environmentId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/environments/{environmentId}/access-policy' +} + +export type EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponses = { + 200: UpdateEnvironmentAccessPolicyReply +} + +export type EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponse + = EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponses[keyof EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponses] + +export type EnterpriseAppDeployConsoleGetAppInstanceOverviewData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/overview' +} + +export type EnterpriseAppDeployConsoleGetAppInstanceOverviewResponses = { + 200: GetAppInstanceOverviewReply +} + +export type EnterpriseAppDeployConsoleGetAppInstanceOverviewResponse + = EnterpriseAppDeployConsoleGetAppInstanceOverviewResponses[keyof EnterpriseAppDeployConsoleGetAppInstanceOverviewResponses] + +export type EnterpriseAppDeployConsoleListReleasesData = { + body?: never + path: { + appInstanceId: string + } + query?: { + pageNumber?: number + resultsPerPage?: number + } + url: '/enterprise/app-instances/{appInstanceId}/releases' +} + +export type EnterpriseAppDeployConsoleListReleasesResponses = { + 200: ListReleasesReply +} + +export type EnterpriseAppDeployConsoleListReleasesResponse + = EnterpriseAppDeployConsoleListReleasesResponses[keyof EnterpriseAppDeployConsoleListReleasesResponses] + +export type EnterpriseAppDeployConsoleCreateReleaseData = { + body: CreateReleaseReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/releases' +} + +export type EnterpriseAppDeployConsoleCreateReleaseResponses = { + 200: CreateReleaseReply +} + +export type EnterpriseAppDeployConsoleCreateReleaseResponse + = EnterpriseAppDeployConsoleCreateReleaseResponses[keyof EnterpriseAppDeployConsoleCreateReleaseResponses] + +export type EnterpriseAppDeployConsolePreviewReleaseData = { + body: PreviewReleaseReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/releases:preview' +} + +export type EnterpriseAppDeployConsolePreviewReleaseResponses = { + 200: PreviewReleaseReply +} + +export type EnterpriseAppDeployConsolePreviewReleaseResponse + = EnterpriseAppDeployConsolePreviewReleaseResponses[keyof EnterpriseAppDeployConsolePreviewReleaseResponses] + +export type EnterpriseAppDeployConsoleListRuntimeInstancesData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/runtime-instances' +} + +export type EnterpriseAppDeployConsoleListRuntimeInstancesResponses = { + 200: ListRuntimeInstancesReply +} + +export type EnterpriseAppDeployConsoleListRuntimeInstancesResponse + = EnterpriseAppDeployConsoleListRuntimeInstancesResponses[keyof EnterpriseAppDeployConsoleListRuntimeInstancesResponses] + +export type EnterpriseAppDeployConsoleCancelRuntimeDeploymentData = { + body: CancelRuntimeDeploymentReq + path: { + appInstanceId: string + runtimeInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/runtime-instances/{runtimeInstanceId}/deployment:cancel' +} + +export type EnterpriseAppDeployConsoleCancelRuntimeDeploymentResponses = { + 200: CancelRuntimeDeploymentReply +} + +export type EnterpriseAppDeployConsoleCancelRuntimeDeploymentResponse + = EnterpriseAppDeployConsoleCancelRuntimeDeploymentResponses[keyof EnterpriseAppDeployConsoleCancelRuntimeDeploymentResponses] + +export type EnterpriseAppDeployConsoleUndeployRuntimeInstanceData = { + body: UndeployRuntimeInstanceReq + path: { + appInstanceId: string + runtimeInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/runtime-instances/{runtimeInstanceId}:undeploy' +} + +export type EnterpriseAppDeployConsoleUndeployRuntimeInstanceResponses = { + 200: UndeployRuntimeInstanceReply +} + +export type EnterpriseAppDeployConsoleUndeployRuntimeInstanceResponse + = EnterpriseAppDeployConsoleUndeployRuntimeInstanceResponses[keyof EnterpriseAppDeployConsoleUndeployRuntimeInstanceResponses] + +export type EnterpriseAppDeployConsoleGetAppInstanceSettingsData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/settings' +} + +export type EnterpriseAppDeployConsoleGetAppInstanceSettingsResponses = { + 200: GetAppInstanceSettingsReply +} + +export type EnterpriseAppDeployConsoleGetAppInstanceSettingsResponse + = EnterpriseAppDeployConsoleGetAppInstanceSettingsResponses[keyof EnterpriseAppDeployConsoleGetAppInstanceSettingsResponses] + +export type EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsData = { + body?: never + path?: never + query?: never + url: '/enterprise/deployment-environment-options' +} + +export type EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponses = { + 200: ListDeploymentEnvironmentOptionsReply +} + +export type EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponse + = EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponses[keyof EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponses] + export type ConsoleSsoOAuth2LoginData = { body?: never path?: never diff --git a/web/contract/generated/enterprise/zod.gen.ts b/web/contract/generated/enterprise/zod.gen.ts index cef500a906..1e7e3d44ae 100644 --- a/web/contract/generated/enterprise/zod.gen.ts +++ b/web/contract/generated/enterprise/zod.gen.ts @@ -2,6 +2,44 @@ import * as z from 'zod' +export const zAccessModeOption = z.object({ + mode: z.string().optional(), + label: z.string().optional(), + disabled: z.boolean().optional(), + selected: z.boolean().optional(), +}) + +export const zAccessStatus = z.object({ + accessChannelsEnabled: z.boolean().optional(), + webappUrl: z.string().optional(), + cliUrl: z.string().optional(), + developerApiEnabled: z.boolean().optional(), + apiKeyCount: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +export const zAccessSubject = z.object({ + subjectId: z.string().optional(), + subjectType: z.string().optional(), +}) + +export const zAccessSubjectDisplay = z.object({ + id: z.string().optional(), + subjectType: z.string().optional(), + name: z.string().optional(), + avatarUrl: z.string().optional(), + memberCount: z.string().optional(), +}) + +export const zAccessPolicyDetail = z.object({ + accessMode: z.string().optional(), + subjects: z.array(zAccessSubjectDisplay).optional(), + options: z.array(zAccessModeOption).optional(), +}) + /** * Account represents a basic user account */ @@ -37,9 +75,101 @@ export const zAccountDetail = z.object({ groups: z.array(zAccountDetailGroup).optional(), }) -export const zAddGroupAppsRequest = z.object({ +export const zAckDeploymentReply = z.object({ + accepted: z.boolean().optional(), + newVersion: z.string().optional(), +}) + +export const zAppInstanceBasicInfo = z.object({ id: z.string().optional(), - app_ids: z.array(z.string()).optional(), + name: z.string().optional(), + description: z.string().optional(), + sourceAppId: z.string().optional(), + sourceAppName: z.string().optional(), + mode: z.string().optional(), + createdAt: z.iso.datetime().optional(), +}) + +export const zAppRunnerBootstrapAssignment = z.object({ + appId: z.string().optional(), + environmentId: z.string().optional(), + workflowId: z.string().optional(), + instanceId: z.string().optional(), + workspaceId: z.string().optional(), + instanceVersion: z.string().optional(), + bindingSnapshotVersion: z.string().optional(), + executionTokenVersion: z.string().optional(), + executionToken: z.string().optional(), + releaseId: z.string().optional(), +}) + +export const zAppRunnerBootstrapReply = z.object({ + runnerId: z.string().optional(), + assignmentRevision: z.string().optional(), + assignments: z.array(zAppRunnerBootstrapAssignment).optional(), +}) + +export const zAppRunnerRunnerInfo = z.object({ + hostname: z.string().optional(), +}) + +export const zAppRunnerBootstrapRequest = z.object({ + runner: zAppRunnerRunnerInfo.optional(), +}) + +export const zAppRunnerRuntimeArtifactReply = z.object({ + dslYaml: z.string().optional(), + bindingSnapshotVersion: z.string().optional(), + bindingSnapshot: z.record(z.string(), z.unknown()).optional(), +}) + +export const zAppRunnerRuntimeArtifactRequest = z.object({ + instanceId: z.string().optional(), + releaseId: z.string().optional(), + bindingSnapshotVersion: z.string().optional(), +}) + +export const zAppRunnerBatchRuntimeArtifactRequest = z.object({ + artifacts: z.array(zAppRunnerRuntimeArtifactRequest).optional(), +}) + +export const zAppRunnerRuntimeArtifactResult = z.object({ + instanceId: z.string().optional(), + releaseId: z.string().optional(), + artifact: zAppRunnerRuntimeArtifactReply.optional(), + errorCode: z.string().optional(), + errorMessage: z.string().optional(), +}) + +export const zAppRunnerBatchRuntimeArtifactReply = z.object({ + results: z.array(zAppRunnerRuntimeArtifactResult).optional(), +}) + +export const zAppRunnerTokenExchangeReply = z.object({ + accessToken: z.string().optional(), + expiresAt: z.iso.datetime().optional(), +}) + +export const zAppRunnerTokenExchangeRequest = z.object({ + joinToken: z.string().optional(), +}) + +/** + * BootstrapProgress is step-list-agnostic. Reconcilers emit step names as + * strings owned by each executor (e.g. "connectivity", "namespace"), so adding + * or removing steps does not break the API. + */ +export const zBootstrapProgress = z.object({ + currentStep: z.string().optional(), + completedSteps: z.array(z.string()).optional(), + attemptCount: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + lastAttemptAt: z.iso.datetime().optional(), + lastErrorCode: z.string().optional(), + lastErrorMessage: z.string().optional(), }) export const zBrandingInfo = z.object({ @@ -50,6 +180,15 @@ export const zBrandingInfo = z.object({ favicon: z.string().optional(), }) +export const zCancelRuntimeDeploymentReply = z.object({ + status: z.string().optional(), +}) + +export const zCancelRuntimeDeploymentReq = z.object({ + appInstanceId: z.string().optional(), + runtimeInstanceId: z.string().optional(), +}) + export const zCheckPasswordStatusReply = z.object({ requirePasswordChange: z.boolean().optional(), changeReason: z.int().optional(), @@ -63,10 +202,57 @@ export const zCheckPasswordStatusReply = z.object({ export const zClearDefaultWorkspaceReply = z.record(z.string(), z.unknown()) +export const zCliAccess = z.object({ + url: z.string().optional(), +}) + +export const zConsoleEnvironment = z.object({ + id: z.string().optional(), + name: z.string().optional(), + runtime: z.string().optional(), + type: z.string().optional(), + status: z.string().optional(), +}) + +export const zConsoleRelease = z.object({ + id: z.string().optional(), + name: z.string().optional(), + shortCommitId: z.string().optional(), + createdAt: z.iso.datetime().optional(), +}) + +export const zConsoleUser = z.object({ + id: z.string().optional(), + name: z.string().optional(), +}) + +export const zCreateAppInstanceReply = z.object({ + appInstanceId: z.string().optional(), + initialRelease: zConsoleRelease.optional(), +}) + +export const zCreateAppInstanceReq = z.object({ + sourceAppId: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), +}) + export const zCreateBearerTokenResponse = z.object({ token: z.string().optional(), }) +export const zCreateDeploymentReply = z.object({ + runtimeInstanceId: z.string().optional(), + deploymentId: z.string().optional(), + status: z.string().optional(), +}) + +export const zCreateDeveloperApiKeyReq = z.object({ + appInstanceId: z.string().optional(), + environmentId: z.string().optional(), + name: z.string().optional(), +}) + export const zCreateMemberReply = z.object({ id: z.string().optional(), password: z.string().optional(), @@ -89,7 +275,12 @@ export const zCreateNewGroupsReq = z.object({ groups: z.array(zCreateNewGroupsReqGroup).optional(), }) -export const zCreateResourceGroupRequest = z.object({ +export const zCreateReleaseReply = z.object({ + release: zConsoleRelease.optional(), +}) + +export const zCreateReleaseReq = z.object({ + appInstanceId: z.string().optional(), name: z.string().optional(), description: z.string().optional(), }) @@ -151,10 +342,21 @@ export const zDashboardSsosamlLoginReply = z.object({ url: z.string().optional(), }) +export const zDeleteAppInstanceReply = z.record(z.string(), z.unknown()) + +export const zDeleteDeveloperApiKeyReply = z.record(z.string(), z.unknown()) + +export const zDeleteEnvironmentReply = z.record(z.string(), z.unknown()) + export const zDeleteGroupsRes = z.object({ message: z.string().optional(), }) +export const zDeleteGuard = z.object({ + canDelete: z.boolean().optional(), + disabledReason: z.string().optional(), +}) + export const zDeleteMemberReply = z.object({ account: zAccount.optional(), }) @@ -169,6 +371,82 @@ export const zDeleteUserReply = z.object({ export const zDeleteWorkspaceReply = z.record(z.string(), z.unknown()) +export const zDeployedEnvironment = z.object({ + environmentId: z.string().optional(), + environmentName: z.string().optional(), +}) + +export const zDeploymentCredentialOption = z.object({ + credentialId: z.string().optional(), + displayName: z.string().optional(), + pluginId: z.string().optional(), + pluginName: z.string().optional(), + pluginVersion: z.string().optional(), +}) + +export const zDeploymentEnvVarOption = z.object({ + envVarId: z.string().optional(), + name: z.string().optional(), + valueType: z.string().optional(), + displayValue: z.string().optional(), +}) + +export const zDeploymentBindingOptionSlot = z.object({ + slot: z.string().optional(), + kind: z.string().optional(), + label: z.string().optional(), + required: z.boolean().optional(), + candidates: z.array(zDeploymentCredentialOption).optional(), + envVarCandidates: z.array(zDeploymentEnvVarOption).optional(), +}) + +export const zDeploymentEnvironmentOption = z.object({ + id: z.string().optional(), + name: z.string().optional(), + type: z.string().optional(), + backend: z.string().optional(), + status: z.string().optional(), + managedBy: z.string().optional(), + deployable: z.boolean().optional(), + disabledReason: z.string().optional(), +}) + +export const zDeploymentRuntimeBinding = z.object({ + slot: z.string().optional(), + credentialId: z.string().optional(), + envVarId: z.string().optional(), +}) + +export const zCreateDeploymentReq = z.object({ + appInstanceId: z.string().optional(), + environmentId: z.string().optional(), + releaseId: z.string().optional(), + bindings: z.array(zDeploymentRuntimeBinding).optional(), +}) + +export const zDeploymentStatusRow = z.object({ + environment: zConsoleEnvironment.optional(), + release: zConsoleRelease.optional(), + status: z.string().optional(), +}) + +export const zDeveloperApiKeyRow = z.object({ + id: z.string().optional(), + name: z.string().optional(), + environment: zConsoleEnvironment.optional(), + maskedKey: z.string().optional(), +}) + +export const zCreateDeveloperApiKeyReply = z.object({ + apiKey: zDeveloperApiKeyRow.optional(), + token: z.string().optional(), +}) + +export const zDeveloperApiAccess = z.object({ + enabled: z.boolean().optional(), + apiKeys: z.array(zDeveloperApiKeyRow).optional(), +}) + /** * System user setting messages */ @@ -178,6 +456,53 @@ export const zEnterpriseSystemUserSettingReply = z.object({ enableEmailPasswordLogin: z.boolean().optional(), }) +export const zEnvironment = z.object({ + id: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), + mode: z.int().optional(), + namespace: z.string().optional(), + apiServer: z.string().optional(), + status: z.int().optional(), + statusMessage: z.string().optional(), + bootstrapProgress: zBootstrapProgress.optional(), + managedBy: z.string().optional(), + createdAt: z.iso.datetime().optional(), + updatedAt: z.iso.datetime().optional(), + backend: z.int().optional(), + host: z.string().optional(), +}) + +export const zCreateEnvironmentReply = z.object({ + environment: zEnvironment.optional(), +}) + +export const zEnvironmentAccessRow = z.object({ + environment: zConsoleEnvironment.optional(), + currentRelease: zConsoleRelease.optional(), + accessMode: z.string().optional(), + accessModeLabel: z.string().optional(), + hint: z.string().optional(), +}) + +export const zEnvironmentFilter = z.object({ + id: z.string().optional(), + name: z.string().optional(), + kind: z.string().optional(), +}) + +export const zGetAppInstanceOverviewReply = z.object({ + instance: zAppInstanceBasicInfo.optional(), + deployments: z.array(zDeploymentStatusRow).optional(), + access: zAccessStatus.optional(), +}) + +export const zGetAppInstanceSettingsReply = z.object({ + name: z.string().optional(), + description: z.string().optional(), + deleteGuard: zDeleteGuard.optional(), +}) + export const zGetBearerTokenResponse = z.object({ maskedToken: z.string().optional(), }) @@ -188,6 +513,23 @@ export const zGetClusterInfoReply = z.object({ verifyMode: z.string().optional(), }) +export const zGetEnvironmentAccessPolicyReply = z.object({ + policy: zAccessPolicyDetail.optional(), +}) + +export const zGetEnvironmentReply = z.object({ + environment: zEnvironment.optional(), +}) + +export const zGetInstanceReply = z.object({ + instanceId: z.string().optional(), + status: z.string().optional(), + desiredReleaseId: z.string().optional(), + observedReleaseId: z.string().optional(), + currentDeploymentId: z.string().optional(), + version: z.string().optional(), +}) + export const zGetLicenseStatusReply = z.object({ status: z.string().optional(), }) @@ -223,25 +565,14 @@ export const zGetWebAppWhitelistSubjectsResMember = z.object({ avatar: z.string().optional(), }) -export const zGroupAppItem = z.object({ - app_id: z.string().optional(), - app_name: z.string().optional(), - workspace_id: z.string().optional(), - workspace_name: z.string().optional(), - app_status: z.int().optional(), - token_usage: z.string().optional(), - rpm: z.string().optional(), - concurrency: z.string().optional(), -}) - export const zHealthzReply = z.object({ message: z.string().optional(), status: z.string().optional(), }) -export const zInnerAdmission = z.object({ - marker: z.string().optional(), - concurrencyGroupIds: z.array(z.string()).optional(), +export const zHostEnvironmentConfig = z.object({ + machineId: z.string().optional(), + joinTokenHash: z.string().optional(), }) export const zInnerBatchGetWebAppAccessModesByIdReq = z.object({ @@ -261,10 +592,50 @@ export const zInnerBatchIsUserAllowedToAccessWebAppRes = z.object({ permissions: z.record(z.string(), z.boolean()).optional(), }) +export const zInnerCheckAppDeployAccessReply = z.object({ + allowed: z.boolean().optional(), + matchedPolicyId: z.string().optional(), + matchedScopeType: z.string().optional(), + reason: z.string().optional(), + cacheTtlSeconds: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +export const zInnerCheckAppDeployAccessReq = z.object({ + appInstanceId: z.string().optional(), + environmentId: z.string().optional(), + principalType: z.string().optional(), + principalId: z.string().optional(), +}) + export const zInnerCleanAppRes = z.object({ message: z.string().optional(), }) +export const zInnerGetTokenRouteReply = z.object({ + environmentId: z.string().optional(), + namespace: z.string().optional(), + serviceName: z.string().optional(), + servicePort: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + environmentStatus: z.string().optional(), + appId: z.string().optional(), + tenantId: z.string().optional(), + instanceId: z.string().optional(), + observedReleaseId: z.string().optional(), + instanceStatus: z.string().optional(), +}) + +export const zInnerGetTokenRouteReq = z.object({ + token: z.string().optional(), +}) + export const zInnerGetWebAppAccessModeByCodeRes = z.object({ accessMode: z.string().optional(), }) @@ -277,12 +648,6 @@ export const zInnerIsUserAllowedToAccessWebAppRes = z.object({ result: z.boolean().optional(), }) -export const zInnerReleaseAdmissionRequest = z.object({ - admission: zInnerAdmission.optional(), -}) - -export const zInnerReleaseAdmissionResponse = z.record(z.string(), z.unknown()) - export const zInnerTryAddAccountToDefaultWorkspaceReply = z.object({ workspaceId: z.string().optional(), joined: z.boolean().optional(), @@ -313,32 +678,48 @@ export const zJoinWorkspaceReq = z.object({ role: z.string().optional(), }) -export const zLimitConfig = z.object({ - type: z.int().optional(), - threshold: z.string().optional(), - action: z.int().optional(), - reached: z.boolean().optional(), +export const zK8sEnvironmentConfig = z.object({ + namespace: z.string().optional(), + apiServer: z.string().optional(), + caBundle: z.string().optional(), + bearerToken: z.string().optional(), }) -export const zInnerGroupConfig = z.object({ - id: z.string().optional(), - enabled: z.boolean().optional(), - membershipId: z.string().optional(), - limits: z.array(zLimitConfig).optional(), +/** + * Field-level validation only; target (api_server) and RBAC validation happen + * in the bootstrap reconciler. + */ +export const zCreateEnvironmentReq = z.object({ + name: z.string().optional(), + description: z.string().optional(), + mode: z.int().optional(), + backend: z.int().optional(), + k8s: zK8sEnvironmentConfig.optional(), + host: zHostEnvironmentConfig.optional(), }) -export const zInnerResolveResponse = z.object({ - appId: z.string().optional(), - groups: z.array(zInnerGroupConfig).optional(), - blocked: z.boolean().optional(), - blockGroupId: z.string().optional(), - blockReason: z.string().optional(), - admission: zInnerAdmission.optional(), +export const zLastError = z.object({ + phase: z.string().optional(), + code: z.string().optional(), + message: z.string().optional(), + releaseId: z.string().optional(), }) -export const zListGroupAppsResponse = z.object({ - items: z.array(zGroupAppItem).optional(), - total: z.string().optional(), +export const zAckDeploymentReq = z.object({ + deploymentId: z.string().optional(), + instanceId: z.string().optional(), + expectedVersion: z.string().optional(), + status: z.string().optional(), + observedReleaseId: z.string().optional(), + lastError: zLastError.optional(), +}) + +export const zListDeploymentBindingOptionsReply = z.object({ + slots: z.array(zDeploymentBindingOptionSlot).optional(), +}) + +export const zListDeploymentEnvironmentOptionsReply = z.object({ + environments: z.array(zDeploymentEnvironmentOption).optional(), }) export const zLoginTypesReply = z.object({ @@ -490,6 +871,31 @@ export const zPluginInstallationSettingsReply = z.object({ restrictToMarketplaceOnly: z.boolean().optional(), }) +export const zPreviewReleaseReq = z.object({ + appInstanceId: z.string().optional(), + releaseId: z.string().optional(), +}) + +export const zReleaseRow = z.object({ + id: z.string().optional(), + name: z.string().optional(), + createdAt: z.iso.datetime().optional(), + createdBy: zConsoleUser.optional(), + deployedTo: z.array(zDeployedEnvironment).optional(), +}) + +export const zReleaseRuntimeBinding = z.object({ + kind: z.string().optional(), + label: z.string().optional(), + displayValue: z.string().optional(), + valueType: z.string().optional(), +}) + +export const zPreviewReleaseReply = z.object({ + release: zConsoleRelease.optional(), + bindings: z.array(zReleaseRuntimeBinding).optional(), +}) + export const zResetMemberPasswordReply = z.object({ id: z.string().optional(), password: z.string().optional(), @@ -524,56 +930,26 @@ export const zResetUserPasswordReq = z.object({ id: z.string().optional(), }) -export const zResourceGroupDetail = z.object({ - id: z.string().optional(), - name: z.string().optional(), - description: z.string().optional(), - enabled: z.boolean().optional(), - rpm_limit: z - .int() - .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) - .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) - .optional(), - rpm_action: z.int().optional(), - concurrency_limit: z - .int() - .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) - .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) - .optional(), - concurrency_action: z.int().optional(), - token_quota: z.string().optional(), - token_action: z.int().optional(), - created_at: z.string().optional(), - updated_at: z.string().optional(), +export const zResolveCredentialsReq = z.object({ + instanceId: z.string().optional(), + deploymentId: z.string().optional(), + slots: z.array(z.string()).optional(), }) -export const zResourceGroupItem = z.object({ - id: z.string().optional(), - name: z.string().optional(), - description: z.string().optional(), - enabled: z.boolean().optional(), - rpm_limit: z - .int() - .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) - .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) - .optional(), - concurrency_limit: z - .int() - .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) - .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) - .optional(), - token_quota: z.string().optional(), - token_usage: z.string().optional(), - app_count: z.string().optional(), - rpm_status: z.int().optional(), - conc_status: z.int().optional(), - created_at: z.string().optional(), - updated_at: z.string().optional(), +/** + * Exactly one of credential_id / env_var_id is populated; model/plugin slots + * carry credential_id (pool A), env_var slots carry env_var_id (pool B). + * See design ยง4.1. + */ +export const zResolvedCredential = z.object({ + slot: z.string().optional(), + credentialId: z.string().optional(), + envVarId: z.string().optional(), + value: z.string().optional(), }) -export const zListResourceGroupsResponse = z.object({ - items: z.array(zResourceGroupItem).optional(), - total: z.string().optional(), +export const zResolveCredentialsReply = z.object({ + resolved: z.array(zResolvedCredential).optional(), }) /** @@ -626,6 +1002,44 @@ export const zGetLicenseReply = z.object({ license: zLicenseInfo.optional(), }) +export const zRetryEnvironmentReply = z.object({ + environment: zEnvironment.optional(), +}) + +export const zRetryEnvironmentReq = z.object({ + id: z.string().optional(), +}) + +export const zRuntimeEndpoints = z.object({ + run: z.string().optional(), + health: z.string().optional(), +}) + +export const zRuntimeInstanceDetail = z.object({ + deploymentName: z.string().optional(), + replicas: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + runtimeMode: z.string().optional(), + runtimeNote: z.string().optional(), + endpoints: zRuntimeEndpoints.optional(), + bindings: z.array(zReleaseRuntimeBinding).optional(), +}) + +export const zRuntimeInstanceRow = z.object({ + id: z.string().optional(), + environment: zConsoleEnvironment.optional(), + status: z.string().optional(), + currentRelease: zConsoleRelease.optional(), + detail: zRuntimeInstanceDetail.optional(), +}) + +export const zListRuntimeInstancesReply = z.object({ + data: z.array(zRuntimeInstanceRow).optional(), +}) + /** * SSO Configuration messages */ @@ -688,21 +1102,8 @@ export const zScimSettings = z.object({ lastSyncTime: z.iso.datetime().optional(), }) -export const zSearchAppItem = z.object({ - app_id: z.string().optional(), - app_name: z.string().optional(), - workspace_id: z.string().optional(), - workspace_name: z.string().optional(), - app_status: z.int().optional(), - icon: z.string().optional(), - icon_type: z.string().optional(), - icon_background: z.string().optional(), - created_by_name: z.string().optional(), -}) - -export const zSearchAppsResponse = z.object({ - items: z.array(zSearchAppItem).optional(), - total: z.string().optional(), +export const zSearchAccessSubjectsReply = z.object({ + data: z.array(zAccessSubjectDisplay).optional(), }) export const zSecretKey = z.object({ @@ -721,6 +1122,25 @@ export const zSetDefaultWorkspaceReq = z.object({ id: z.string().optional(), }) +export const zStatusCount = z.object({ + status: z.string().optional(), + count: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +export const zAppInstanceCard = z.object({ + id: z.string().optional(), + name: z.string().optional(), + icon: z.string().optional(), + mode: z.string().optional(), + sourceAppName: z.string().optional(), + statuses: z.array(zStatusCount).optional(), + lastDeployedAt: z.iso.datetime().optional(), +}) + export const zSubjectAccountData = z.object({ id: z.string().optional(), name: z.string().optional(), @@ -794,10 +1214,38 @@ export const zTestConnectionReply = z.object({ error: z.string().optional(), }) +export const zTestEnvironmentConnectionReply = z.object({ + ok: z.boolean().optional(), + reachableServerVersion: z.string().optional(), + namespaceExists: z.boolean().optional(), + missingPermissions: z.array(z.string()).optional(), + error: z.string().optional(), + probedAt: z.iso.datetime().optional(), +}) + +export const zTestEnvironmentConnectionReq = z.object({ + id: z.string().optional(), +}) + export const zToggleEndpointRequest = z.object({ enabled: z.boolean().optional(), }) +export const zUndeployRuntimeInstanceReply = z.object({ + deploymentId: z.string().optional(), + status: z.string().optional(), +}) + +export const zUndeployRuntimeInstanceReq = z.object({ + appInstanceId: z.string().optional(), + runtimeInstanceId: z.string().optional(), +}) + +export const zUpdateAccessChannelsReq = z.object({ + appInstanceId: z.string().optional(), + enabled: z.boolean().optional(), +}) + export const zUpdateAccessModeReq = z.object({ appId: z.string().optional(), accessMode: z.string().optional(), @@ -807,6 +1255,16 @@ export const zUpdateAccessModeRes = z.object({ message: z.string().optional(), }) +export const zUpdateAppInstanceReply = z.object({ + appInstanceId: z.string().optional(), +}) + +export const zUpdateAppInstanceReq = z.object({ + appInstanceId: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), +}) + export const zUpdateBrandingInfoReq = z.object({ enabled: z.boolean().optional(), applicationTitle: z.string().optional(), @@ -815,6 +1273,36 @@ export const zUpdateBrandingInfoReq = z.object({ favicon: z.string().optional(), }) +export const zUpdateDeveloperApiReply = z.object({ + developerApi: zDeveloperApiAccess.optional(), +}) + +export const zUpdateDeveloperApiReq = z.object({ + appInstanceId: z.string().optional(), + enabled: z.boolean().optional(), +}) + +export const zUpdateEnvironmentAccessPolicyReply = z.object({ + permission: zEnvironmentAccessRow.optional(), +}) + +export const zUpdateEnvironmentAccessPolicyReq = z.object({ + appInstanceId: z.string().optional(), + environmentId: z.string().optional(), + accessMode: z.string().optional(), + subjects: z.array(zAccessSubject).optional(), +}) + +export const zUpdateEnvironmentReply = z.object({ + environment: zEnvironment.optional(), +}) + +export const zUpdateEnvironmentReq = z.object({ + id: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), +}) + export const zUpdateGroupSubjectsReq = z.object({ groupId: z.string().optional(), subjects: z.array(zSubject).optional(), @@ -898,27 +1386,6 @@ export const zUpdatePluginInstallationSettingsRequest = z.object({ restrictToMarketplaceOnly: z.boolean().optional(), }) -export const zUpdateResourceGroupRequest = z.object({ - id: z.string().optional(), - name: z.string().optional(), - description: z.string().optional(), - enabled: z.boolean().optional(), - rpm_limit: z - .int() - .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) - .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) - .optional(), - rpm_action: z.int().optional(), - concurrency_limit: z - .int() - .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) - .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) - .optional(), - concurrency_action: z.int().optional(), - token_quota: z.string().optional(), - token_action: z.int().optional(), -}) - export const zUpdateUserReply = z.object({ account: zAccountDetail.optional(), }) @@ -963,6 +1430,27 @@ export const zUpdateWorkspaceReq = z.object({ status: z.string().optional(), }) +export const zWebAppAccessRow = z.object({ + environment: zConsoleEnvironment.optional(), + url: z.string().optional(), +}) + +export const zAccessChannels = z.object({ + enabled: z.boolean().optional(), + webappRows: z.array(zWebAppAccessRow).optional(), + cli: zCliAccess.optional(), +}) + +export const zGetAppInstanceAccessReply = z.object({ + permissions: z.array(zEnvironmentAccessRow).optional(), + accessChannels: zAccessChannels.optional(), + developerApi: zDeveloperApiAccess.optional(), +}) + +export const zUpdateAccessChannelsReply = z.object({ + accessChannels: zAccessChannels.optional(), +}) + export const zWebAppAuthInfo = z.object({ allowSso: z.boolean().optional(), allowEmailCodeLogin: z.boolean().optional(), @@ -1084,11 +1572,27 @@ export const zPagination = z.object({ .optional(), }) +export const zListAppInstancesReply = z.object({ + filters: z.array(zEnvironmentFilter).optional(), + data: z.array(zAppInstanceCard).optional(), + pagination: zPagination.optional(), +}) + +export const zListEnvironmentsReply = z.object({ + data: z.array(zEnvironment).optional(), + pagination: zPagination.optional(), +}) + export const zListMembersReply = z.object({ data: z.array(zAccountDetail).optional(), pagination: zPagination.optional(), }) +export const zListReleasesReply = z.object({ + data: z.array(zReleaseRow).optional(), + pagination: zPagination.optional(), +}) + export const zListSecretKeysReply = z.object({ data: z.array(zSecretKey).optional(), pagination: zPagination.optional(), @@ -1104,6 +1608,271 @@ export const zListWorkspacesReply = z.object({ pagination: zPagination.optional(), }) +export const zEnterpriseAppDeployConsoleListAppInstancesQuery = z.object({ + environmentId: z.string().optional(), + notDeployed: z.boolean().optional(), + query: z.string().optional(), + pageNumber: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + resultsPerPage: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListAppInstancesResponse = zListAppInstancesReply + +export const zEnterpriseAppDeployConsoleCreateAppInstanceBody = zCreateAppInstanceReq + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCreateAppInstanceResponse = zCreateAppInstanceReply + +export const zEnterpriseAppDeployConsoleDeleteAppInstancePath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleDeleteAppInstanceResponse = zDeleteAppInstanceReply + +export const zEnterpriseAppDeployConsoleUpdateAppInstanceBody = zUpdateAppInstanceReq + +export const zEnterpriseAppDeployConsoleUpdateAppInstancePath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUpdateAppInstanceResponse = zUpdateAppInstanceReply + +export const zEnterpriseAppDeployConsoleGetAppInstanceAccessPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleGetAppInstanceAccessResponse = zGetAppInstanceAccessReply + +export const zEnterpriseAppDeployConsoleUpdateAccessChannelsBody = zUpdateAccessChannelsReq + +export const zEnterpriseAppDeployConsoleUpdateAccessChannelsPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUpdateAccessChannelsResponse = zUpdateAccessChannelsReply + +export const zEnterpriseAppDeployConsoleSearchAccessSubjectsPath = z.object({ + appInstanceId: z.string(), +}) + +export const zEnterpriseAppDeployConsoleSearchAccessSubjectsQuery = z.object({ + keyword: z.string().optional(), + subjectTypes: z.array(z.string()).optional(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleSearchAccessSubjectsResponse = zSearchAccessSubjectsReply + +export const zEnterpriseAppDeployConsoleCreateDeveloperApiKeyBody = zCreateDeveloperApiKeyReq + +export const zEnterpriseAppDeployConsoleCreateDeveloperApiKeyPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCreateDeveloperApiKeyResponse = zCreateDeveloperApiKeyReply + +export const zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyPath = z.object({ + appInstanceId: z.string(), + apiKeyId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponse = zDeleteDeveloperApiKeyReply + +export const zEnterpriseAppDeployConsoleListDeploymentBindingOptionsPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListDeploymentBindingOptionsResponse + = zListDeploymentBindingOptionsReply + +export const zEnterpriseAppDeployConsoleCreateDeploymentBody = zCreateDeploymentReq + +export const zEnterpriseAppDeployConsoleCreateDeploymentPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCreateDeploymentResponse = zCreateDeploymentReply + +export const zEnterpriseAppDeployConsoleUpdateDeveloperApiBody = zUpdateDeveloperApiReq + +export const zEnterpriseAppDeployConsoleUpdateDeveloperApiPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUpdateDeveloperApiResponse = zUpdateDeveloperApiReply + +export const zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyPath = z.object({ + appInstanceId: z.string(), + environmentId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponse + = zGetEnvironmentAccessPolicyReply + +export const zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyBody + = zUpdateEnvironmentAccessPolicyReq + +export const zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyPath = z.object({ + appInstanceId: z.string(), + environmentId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponse + = zUpdateEnvironmentAccessPolicyReply + +export const zEnterpriseAppDeployConsoleGetAppInstanceOverviewPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleGetAppInstanceOverviewResponse + = zGetAppInstanceOverviewReply + +export const zEnterpriseAppDeployConsoleListReleasesPath = z.object({ + appInstanceId: z.string(), +}) + +export const zEnterpriseAppDeployConsoleListReleasesQuery = z.object({ + pageNumber: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + resultsPerPage: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListReleasesResponse = zListReleasesReply + +export const zEnterpriseAppDeployConsoleCreateReleaseBody = zCreateReleaseReq + +export const zEnterpriseAppDeployConsoleCreateReleasePath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCreateReleaseResponse = zCreateReleaseReply + +export const zEnterpriseAppDeployConsolePreviewReleaseBody = zPreviewReleaseReq + +export const zEnterpriseAppDeployConsolePreviewReleasePath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsolePreviewReleaseResponse = zPreviewReleaseReply + +export const zEnterpriseAppDeployConsoleListRuntimeInstancesPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListRuntimeInstancesResponse = zListRuntimeInstancesReply + +export const zEnterpriseAppDeployConsoleCancelRuntimeDeploymentBody = zCancelRuntimeDeploymentReq + +export const zEnterpriseAppDeployConsoleCancelRuntimeDeploymentPath = z.object({ + appInstanceId: z.string(), + runtimeInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCancelRuntimeDeploymentResponse + = zCancelRuntimeDeploymentReply + +export const zEnterpriseAppDeployConsoleUndeployRuntimeInstanceBody = zUndeployRuntimeInstanceReq + +export const zEnterpriseAppDeployConsoleUndeployRuntimeInstancePath = z.object({ + appInstanceId: z.string(), + runtimeInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUndeployRuntimeInstanceResponse + = zUndeployRuntimeInstanceReply + +export const zEnterpriseAppDeployConsoleGetAppInstanceSettingsPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleGetAppInstanceSettingsResponse + = zGetAppInstanceSettingsReply + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponse + = zListDeploymentEnvironmentOptionsReply + /** * OK */