UNPKG

@phala/cloud

Version:
413 lines 18.1 kB
import { z } from "zod"; import { type Client, type SafeResult } from "../client"; import { ActionParameters, ActionReturnType } from "../types/common"; /** * Provision CVM compose file update * * Provisions a CVM compose file update by uploading the new compose file configuration. * Returns a compose_hash that must be used with `commitCvmComposeFileUpdate` to finalize the update. * * @example * ```typescript * import { createClient, provisionCvmComposeFileUpdate } from '@phala/cloud' * * const client = createClient({ apiKey: 'your-api-key' }) * const result = await provisionCvmComposeFileUpdate(client, { * id: 'cvm-123', * app_compose: { * name: 'my-app', * docker_compose_file: 'version: "3.8"\nservices:\n app:\n image: nginx' * } * }) * console.log(`Compose hash: ${result.compose_hash}`) * ``` * * ## Returns * * `ProvisionCvmComposeFileUpdateResult | unknown` * * Provision response including compose_hash and metadata needed for committing the update. * Return type depends on schema parameter. * * ## Parameters * * ### request (required) * - **Type:** `ProvisionCvmComposeFileUpdateRequest` * * Request parameters containing the CVM ID and compose file configuration. * * ### parameters (optional) * - **Type:** `ProvisionCvmComposeFileUpdateParameters` * * Optional behavior parameters for schema validation. * * ```typescript * // Use default schema * const result = await provisionCvmComposeFileUpdate(client, { * id: 'cvm-123', * app_compose: { name: 'my-app', docker_compose_file: '...' } * }) * * // Return raw data without validation * const raw = await provisionCvmComposeFileUpdate(client, request, { schema: false }) * * // Use custom schema * const customSchema = z.object({ compose_hash: z.string() }) * const custom = await provisionCvmComposeFileUpdate(client, request, { schema: customSchema }) * ``` * * ## Safe Version * * Use `safeProvisionCvmComposeFileUpdate` for error handling without exceptions: * * ```typescript * import { safeProvisionCvmComposeFileUpdate } from '@phala/cloud' * * const result = await safeProvisionCvmComposeFileUpdate(client, { * id: 'cvm-123', * app_compose: { name: 'my-app', docker_compose_file: '...' } * }) * if (result.success) { * console.log(`Compose hash: ${result.data.compose_hash}`) * } else { * if ("isRequestError" in result.error) { * console.error(`HTTP ${result.error.status}: ${result.error.message}`) * } else { * console.error(`Validation error: ${result.error.issues}`) * } * } * ``` */ export declare const ProvisionCvmComposeFileUpdateRequestSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{ id: z.ZodOptional<z.ZodString>; uuid: z.ZodOptional<z.ZodString>; app_id: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>; instance_id: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>; app_compose: z.ZodObject<{ allowed_envs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; docker_compose_file: z.ZodString; features: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; name: z.ZodOptional<z.ZodString>; manifest_version: z.ZodOptional<z.ZodNumber>; kms_enabled: z.ZodOptional<z.ZodBoolean>; public_logs: z.ZodOptional<z.ZodBoolean>; public_sysinfo: z.ZodOptional<z.ZodBoolean>; tproxy_enabled: z.ZodOptional<z.ZodBoolean>; pre_launch_script: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ allowed_envs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; docker_compose_file: z.ZodString; features: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; name: z.ZodOptional<z.ZodString>; manifest_version: z.ZodOptional<z.ZodNumber>; kms_enabled: z.ZodOptional<z.ZodBoolean>; public_logs: z.ZodOptional<z.ZodBoolean>; public_sysinfo: z.ZodOptional<z.ZodBoolean>; tproxy_enabled: z.ZodOptional<z.ZodBoolean>; pre_launch_script: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ allowed_envs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; docker_compose_file: z.ZodString; features: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; name: z.ZodOptional<z.ZodString>; manifest_version: z.ZodOptional<z.ZodNumber>; kms_enabled: z.ZodOptional<z.ZodBoolean>; public_logs: z.ZodOptional<z.ZodBoolean>; public_sysinfo: z.ZodOptional<z.ZodBoolean>; tproxy_enabled: z.ZodOptional<z.ZodBoolean>; pre_launch_script: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>; update_env_vars: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { app_compose: { docker_compose_file: string; name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; manifest_version?: number | undefined; features?: string[] | undefined; } & { [k: string]: unknown; }; id?: string | undefined; app_id?: string | undefined; instance_id?: string | undefined; uuid?: string | undefined; update_env_vars?: boolean | null | undefined; }, { app_compose: { docker_compose_file: string; name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; manifest_version?: number | undefined; features?: string[] | undefined; } & { [k: string]: unknown; }; id?: string | undefined; app_id?: string | undefined; instance_id?: string | undefined; uuid?: string | undefined; update_env_vars?: boolean | null | undefined; }>, { app_compose: { docker_compose_file: string; name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; manifest_version?: number | undefined; features?: string[] | undefined; } & { [k: string]: unknown; }; id?: string | undefined; app_id?: string | undefined; instance_id?: string | undefined; uuid?: string | undefined; update_env_vars?: boolean | null | undefined; }, { app_compose: { docker_compose_file: string; name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; manifest_version?: number | undefined; features?: string[] | undefined; } & { [k: string]: unknown; }; id?: string | undefined; app_id?: string | undefined; instance_id?: string | undefined; uuid?: string | undefined; update_env_vars?: boolean | null | undefined; }>, { cvmId: string | undefined; request: { docker_compose_file: string; name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; manifest_version?: number | undefined; features?: string[] | undefined; } & { [k: string]: unknown; }; update_env_vars: boolean | null | undefined; _raw: { app_compose: { docker_compose_file: string; name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; manifest_version?: number | undefined; features?: string[] | undefined; } & { [k: string]: unknown; }; id?: string | undefined; app_id?: string | undefined; instance_id?: string | undefined; uuid?: string | undefined; update_env_vars?: boolean | null | undefined; }; }, { app_compose: { docker_compose_file: string; name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; manifest_version?: number | undefined; features?: string[] | undefined; } & { [k: string]: unknown; }; id?: string | undefined; app_id?: string | undefined; instance_id?: string | undefined; uuid?: string | undefined; update_env_vars?: boolean | null | undefined; }>; export declare const ProvisionCvmComposeFileUpdateResultSchema: z.ZodObject<{ app_id: z.ZodNullable<z.ZodString>; device_id: z.ZodNullable<z.ZodString>; compose_hash: z.ZodString; kms_info: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodObject<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">>>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ app_id: z.ZodNullable<z.ZodString>; device_id: z.ZodNullable<z.ZodString>; compose_hash: z.ZodString; kms_info: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodObject<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">>>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ app_id: z.ZodNullable<z.ZodString>; device_id: z.ZodNullable<z.ZodString>; compose_hash: z.ZodString; kms_info: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodObject<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; slug: z.ZodNullable<z.ZodString>; url: z.ZodString; version: z.ZodString; chain_id: z.ZodNullable<z.ZodNumber>; kms_contract_address: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; gateway_app_id: z.ZodEffects<z.ZodNullable<z.ZodString>, `0x${string}`, string | null>; }, z.ZodTypeAny, "passthrough">>>>; }, z.ZodTypeAny, "passthrough">>; export type ProvisionCvmComposeFileUpdateRequest = z.input<typeof ProvisionCvmComposeFileUpdateRequestSchema>; export type ProvisionCvmComposeFileUpdateResult = z.infer<typeof ProvisionCvmComposeFileUpdateResultSchema>; export type ProvisionCvmComposeFileUpdateParameters<T = undefined> = ActionParameters<T>; export type ProvisionCvmComposeFileUpdateReturnType<T = undefined> = ActionReturnType<ProvisionCvmComposeFileUpdateResult, T>; /** * Provision a CVM compose file update * * @param client - The API client * @param request - Request parameters containing CVM ID and compose file configuration * @param parameters - Optional behavior parameters * @returns Update provision result */ export declare function provisionCvmComposeFileUpdate<T extends z.ZodSchema | false | undefined = undefined>(client: Client, request: ProvisionCvmComposeFileUpdateRequest, parameters?: ProvisionCvmComposeFileUpdateParameters<T>): Promise<ProvisionCvmComposeFileUpdateReturnType<T>>; /** * Safe version of provisionCvmComposeFileUpdate that returns a Result type instead of throwing */ export declare function safeProvisionCvmComposeFileUpdate<T extends z.ZodSchema | false | undefined = undefined>(client: Client, request: ProvisionCvmComposeFileUpdateRequest, parameters?: ProvisionCvmComposeFileUpdateParameters<T>): Promise<SafeResult<ProvisionCvmComposeFileUpdateReturnType<T>>>; //# sourceMappingURL=provision_cvm_compose_file_update.d.ts.map