@phala/cloud
Version:
TypeScript SDK for Phala Cloud API
413 lines • 18.1 kB
TypeScript
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