cloudflare
Version:
The official TypeScript library for the Cloudflare API
1,871 lines • 74.8 kB
text/typescript
import { APIResource } from "../../../core/resource.mjs";
import { APIPromise } from "../../../core/api-promise.mjs";
import { PagePromise, V4PagePagination, type V4PagePaginationParams } from "../../../core/pagination.mjs";
import { type Uploadable } from "../../../core/uploads.mjs";
import { RequestOptions } from "../../../internal/request-options.mjs";
export declare class BaseVersions extends APIResource {
static readonly _key: readonly ['workers', 'scripts', 'versions'];
/**
* Upload a Worker Version without deploying to Cloudflare's network. You can find
* more about the multipart metadata on our docs:
* https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/.
*
* @example
* ```ts
* const version =
* await client.workers.scripts.versions.create(
* 'this-is_my_script-01',
* {
* account_id: '023e105f4ecef8ad9ca31a8372d0c353',
* metadata: { main_module: 'worker.js' },
* },
* );
* ```
*/
create(scriptName: string, params: VersionCreateParams, options?: RequestOptions): APIPromise<VersionCreateResponse>;
/**
* List of Worker Versions. The first version in the list is the latest version.
*
* @example
* ```ts
* // Automatically fetches more pages as needed.
* for await (const versionListResponse of client.workers.scripts.versions.list(
* 'this-is_my_script-01',
* { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
* )) {
* // ...
* }
* ```
*/
list(scriptName: string, params: VersionListParams, options?: RequestOptions): PagePromise<VersionListResponsesV4PagePagination, VersionListResponse>;
/**
* Retrieves detailed information about a specific version of a Worker script.
*
* @example
* ```ts
* const version = await client.workers.scripts.versions.get(
* 'bcf48806-b317-4351-9ee7-36e7d557d4de',
* {
* account_id: '023e105f4ecef8ad9ca31a8372d0c353',
* script_name: 'this-is_my_script-01',
* },
* );
* ```
*/
get(versionID: string, params: VersionGetParams, options?: RequestOptions): APIPromise<VersionGetResponse>;
}
export declare class Versions extends BaseVersions {
}
export type VersionListResponsesV4PagePagination = V4PagePagination<VersionListResponse>;
export interface VersionCreateResponse {
resources: VersionCreateResponse.Resources;
/**
* Unique identifier for the version.
*/
id?: string;
/**
* Summary of the declarative exports reconciliation that ran on this upload.
* Populated only when the uploaded metadata included an `exports` block. Durable
* Object entries drive reconciliation; `type: worker` entries do not contribute to
* this summary.
*/
exports_reconciliation?: VersionCreateResponse.ExportsReconciliation;
metadata?: VersionCreateResponse.Metadata;
/**
* Sequential version number.
*/
number?: number;
/**
* Time in milliseconds spent on
* [Worker startup](https://developers.cloudflare.com/workers/platform/limits/#worker-startup-time).
*/
startup_time_ms?: number;
}
export declare namespace VersionCreateResponse {
interface Resources {
/**
* List of bindings attached to a Worker. You can find more about bindings on our
* docs:
* https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/#bindings.
*/
bindings?: Resources.Bindings;
script?: Resources.Script;
/**
* Runtime configuration for the Worker.
*/
script_runtime?: Resources.ScriptRuntime;
}
namespace Resources {
/**
* List of bindings attached to a Worker. You can find more about bindings on our
* docs:
* https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/#bindings.
*/
interface Bindings {
}
interface Script {
/**
* Hashed script content
*/
etag?: string;
/**
* The names of handlers exported as part of the default export.
*/
handlers?: Array<string>;
/**
* The client most recently used to deploy this Worker.
*/
last_deployed_from?: string;
/**
* Named exports, such as Durable Object class implementations and named
* entrypoints.
*/
named_handlers?: Array<Script.NamedHandler>;
}
namespace Script {
interface NamedHandler {
/**
* The names of handlers exported as part of the named export.
*/
handlers?: Array<string>;
/**
* The name of the exported class or entrypoint.
*/
name?: string;
}
}
/**
* Runtime configuration for the Worker.
*/
interface ScriptRuntime {
/**
* Date indicating targeted support in the Workers runtime. Backwards incompatible
* fixes to the runtime following this date will not affect this Worker.
*/
compatibility_date?: string;
/**
* Flags that enable or disable certain features in the Workers runtime.
*/
compatibility_flags?: Array<string>;
/**
* Declarative exports for this version, including Durable Object classes (with
* their `storage` backend) and named Worker entrypoints. Tombstoned lifecycle
* entries are omitted, so only live exports (`created` and `expecting-transfer`)
* are returned.
*/
exports?: {
[key: string]: ScriptRuntime.WorkersWorkerExport | ScriptRuntime.WorkersDurableObjectExport | ScriptRuntime.WorkersDurableObjectDeletedExport | ScriptRuntime.WorkersDurableObjectRenamedExport | ScriptRuntime.WorkersDurableObjectTransferredExport | ScriptRuntime.WorkersDurableObjectExpectingTransferExport;
};
/**
* Resource limits for the Worker.
*/
limits?: ScriptRuntime.Limits;
/**
* The tag of the Durable Object migration that was most recently applied for this
* Worker.
*/
migration_tag?: string;
/**
* Usage model for the Worker invocations.
*/
usage_model?: 'bundled' | 'unbound' | 'standard';
}
namespace ScriptRuntime {
/**
* A named Worker entrypoint export (`type: worker`). Worker entrypoints are always
* live (`state: created`) and carry no storage or lifecycle fields. The optional
* `cache` block overrides the Worker's global `cache_options.enabled` for this
* entrypoint.
*/
interface WorkersWorkerExport {
/**
* Marks this entry as a Worker entrypoint export.
*/
type: 'worker';
/**
* Cache override for this entrypoint. Overrides the Worker's global
* `cache_options.enabled` for this entrypoint only.
*/
cache?: WorkersWorkerExport.Cache;
/**
* Live export. May be omitted; defaults to `created`.
*/
state?: 'created';
}
namespace WorkersWorkerExport {
/**
* Cache override for this entrypoint. Overrides the Worker's global
* `cache_options.enabled` for this entrypoint only.
*/
interface Cache {
/**
* Whether caching is enabled for this entrypoint.
*/
enabled: boolean;
}
}
/**
* A live Durable Object export (`state: created`, the default). The platform
* auto-provisions the namespace on first deploy, matches it on subsequent deploys,
* and never mutates or deletes it as a side effect of a code-only change.
* `storage` is required; `renamed_to`, `transferred_to` and `transfer_from` are
* not allowed on a live entry.
*/
interface WorkersDurableObjectExport {
/**
* Durable Object storage backend. `sqlite` is the recommended (and only) backend
* for new namespaces. `legacy-kv` is accepted only for a class whose namespace
* already exists as KV-backed; the `exports` flow never provisions a new
* `legacy-kv` namespace.
*/
storage: 'sqlite' | 'legacy-kv';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
/**
* Name of the container (declared in the upload's `metadata.containers`) that
* backs this Durable Object. When set, the namespace is container-enabled. Valid
* only on live entries.
*/
container?: string;
/**
* Live export. May be omitted; defaults to `created`.
*/
state?: 'created';
}
/**
* A `deleted` tombstone: retires the provisioned namespace for this class and all
* of its data. The class must be absent from the uploaded code and no other Worker
* in the account may bind to the namespace, otherwise the deploy is rejected. No
* other fields are allowed. Deletion is irreversible.
*/
interface WorkersDurableObjectDeletedExport {
/**
* Tombstone that deletes the namespace.
*/
state: 'deleted';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
}
/**
* A `renamed` tombstone: rewrites the provisioned namespace's class name from this
* map key to `renamed_to`. The source class may stay in code during the rollout
* window (an info notice is emitted). `storage`, `transferred_to` and
* `transfer_from` are not allowed.
*/
interface WorkersDurableObjectRenamedExport {
/**
* Tombstone that renames the namespace's class.
*/
state: 'renamed';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
}
/**
* A `transferred` tombstone (source side of a two-phase transfer): hands ownership
* of the provisioned namespace to another script in the same account, named by
* `transferred_to`. The target must have already deployed a matching
* `expecting-transfer` entry. The source class may stay in code during the rollout
* window (an info notice is emitted). `storage`, `renamed_to` and `transfer_from`
* are not allowed.
*/
interface WorkersDurableObjectTransferredExport {
/**
* Tombstone that transfers the namespace to another script.
*/
state: 'transferred';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
}
/**
* The target side of a two-phase transfer (`state: expecting-transfer`). Declares
* that this script expects to receive a namespace for this class from the
* `transfer_from` script. This is a live entry, not a tombstone: bindings resolve
* through the source's namespace until the source commits with a `transferred`
* tombstone. `storage` and `transfer_from` are required; `renamed_to` and
* `transferred_to` are not allowed.
*/
interface WorkersDurableObjectExpectingTransferExport {
/**
* Target side of a two-phase transfer.
*/
state: 'expecting-transfer';
/**
* Durable Object storage backend. `sqlite` is the recommended (and only) backend
* for new namespaces. `legacy-kv` is accepted only for a class whose namespace
* already exists as KV-backed; the `exports` flow never provisions a new
* `legacy-kv` namespace.
*/
storage: 'sqlite' | 'legacy-kv';
/**
* The source script name to receive the namespace from. Must be in the same
* account and dispatch-namespace context. Present on reads for
* `expecting-transfer` entries.
*/
transfer_from: string;
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
/**
* Name of the container (declared in the upload's `metadata.containers`) that
* backs this Durable Object once the transfer settles. Valid only on live entries.
*/
container?: string;
}
/**
* Resource limits for the Worker.
*/
interface Limits {
/**
* The amount of CPU time this Worker can use in milliseconds.
*/
cpu_ms?: number;
}
}
}
/**
* Summary of the declarative exports reconciliation that ran on this upload.
* Populated only when the uploaded metadata included an `exports` block. Durable
* Object entries drive reconciliation; `type: worker` entries do not contribute to
* this summary.
*/
interface ExportsReconciliation {
/**
* Class names for which a new namespace was provisioned.
*/
created: Array<string>;
/**
* Class names whose namespace was deleted by a `deleted` tombstone.
*/
deleted: Array<string>;
/**
* Non-blocking info entries (stale tombstones, tombstone applied with class still
* in code). See `exports_reconciliation_info`.
*/
info: Array<ExportsReconciliation.Info>;
/**
* Source class names whose tombstone entry is now stale and safe to delete from
* `exports` (no remaining referencing scripts).
*/
removable_entries: Array<string>;
/**
* Applied `renamed` tombstones.
*/
renamed: Array<ExportsReconciliation.Renamed>;
/**
* Phase-1 transfer hints recorded on the target side.
*/
transfer_pending: Array<ExportsReconciliation.TransferPending>;
/**
* Committed `transferred` tombstones (phase-2).
*/
transferred: Array<ExportsReconciliation.Transferred>;
/**
* Class names whose provisioned namespace was mutated in place.
*/
updated: Array<string>;
/**
* Non-blocking warnings. See `exports_reconciliation_warning`.
*/
warnings: Array<ExportsReconciliation.Warning>;
}
namespace ExportsReconciliation {
/**
* A non-blocking reconciliation info entry. Emitted for stale tombstones (a no-op
* on this deploy) and for tombstones applied with the source class still in code
* (the supported zero-downtime rollout pattern).
*/
interface Info {
/**
* The class name the info entry is about.
*/
class: string;
/**
* Human-readable explanation.
*/
message: string;
/**
* Stable, machine-readable tag identifying which reconciliation scenario produced
* an error, warning, or info entry. Clients may branch on this value instead of
* parsing `message`.
*/
scenario: 'code_class_not_in_exports' | 'provisioned_class_missing_from_config' | 'config_export_not_in_code' | 'config_references_nonexistent_class' | 'orphaned_provisioned_namespace' | 'storage_type_mismatch' | 'free_tier_requires_sqlite' | 'invalid_export' | 'tombstone_delete_class_still_in_code' | 'tombstone_delete_blocked_by_external_bindings' | 'tombstone_renamed_to_occupied' | 'transferred_pending_not_found' | 'transferred_target_missing' | 'transferred_target_mismatch' | 'phase_one_transfer_source_missing' | 'phase_one_transfer_source_namespace_missing' | 'phase_one_transfer_target_class_provisioned' | 'phase_one_transfer_after_commit_mismatch' | 'phase_one_transfer_duplicate' | 'phase_one_transfer_target_in_dispatch_namespace' | 'phase_one_transfer_source_in_dispatch_namespace' | 'transferred_source_in_dispatch_namespace' | 'transferred_target_in_dispatch_namespace' | 'container_undeclared_reference' | 'container_class_not_durable_object' | 'container_wiring_inconsistent' | 'container_multiple_durable_objects' | 'transfer_container_parity_mismatch' | 'transfer_container_parity_mismatch_on_commit' | 'tombstone_class_still_in_code' | 'stale_tombstone' | 'transfer_receive_already_applied' | 'transfer_receive_cleanup_complete';
/**
* The provisioned namespace the entry relates to, when applicable.
*/
namespace_id?: string;
/**
* Other Workers in the account that still bind to the affected class. Advisory:
* while non-empty the tombstone is not yet safe to remove — redeploy these Workers
* with bindings re-pointed first.
*/
referencing_scripts?: Array<string>;
}
/**
* A single applied `renamed` tombstone.
*/
interface Renamed {
/**
* The original (source) class name.
*/
from: string;
/**
* The new class name (`renamed_to`).
*/
to: string;
}
/**
* A single phase-1 transfer hint recorded on the target side (a live
* `expecting-transfer` entry).
*/
interface TransferPending {
/**
* The target-side class name awaiting transfer.
*/
class: string;
/**
* The source script the namespace will be transferred from.
*/
from: string;
}
/**
* A single committed `transferred` tombstone (phase-2 commit).
*/
interface Transferred {
/**
* The source class name that was transferred.
*/
class: string;
/**
* The transfer phase. Currently always `committed`.
*/
phase: 'committed';
/**
* The destination script that now owns the namespace.
*/
to: string;
}
/**
* A non-blocking reconciliation warning. Reserved: no scenario populates this
* array today (`code_class_not_in_exports` is surfaced as info and
* `provisioned_class_missing_from_config` is a hard error). Clients should still
* surface any entries that appear.
*/
interface Warning {
/**
* The class name the warning is about.
*/
class: string;
/**
* Human-readable explanation of the warning.
*/
message: string;
/**
* Stable, machine-readable tag identifying which reconciliation scenario produced
* an error, warning, or info entry. Clients may branch on this value instead of
* parsing `message`.
*/
scenario: 'code_class_not_in_exports' | 'provisioned_class_missing_from_config' | 'config_export_not_in_code' | 'config_references_nonexistent_class' | 'orphaned_provisioned_namespace' | 'storage_type_mismatch' | 'free_tier_requires_sqlite' | 'invalid_export' | 'tombstone_delete_class_still_in_code' | 'tombstone_delete_blocked_by_external_bindings' | 'tombstone_renamed_to_occupied' | 'transferred_pending_not_found' | 'transferred_target_missing' | 'transferred_target_mismatch' | 'phase_one_transfer_source_missing' | 'phase_one_transfer_source_namespace_missing' | 'phase_one_transfer_target_class_provisioned' | 'phase_one_transfer_after_commit_mismatch' | 'phase_one_transfer_duplicate' | 'phase_one_transfer_target_in_dispatch_namespace' | 'phase_one_transfer_source_in_dispatch_namespace' | 'transferred_source_in_dispatch_namespace' | 'transferred_target_in_dispatch_namespace' | 'container_undeclared_reference' | 'container_class_not_durable_object' | 'container_wiring_inconsistent' | 'container_multiple_durable_objects' | 'transfer_container_parity_mismatch' | 'transfer_container_parity_mismatch_on_commit' | 'tombstone_class_still_in_code' | 'stale_tombstone' | 'transfer_receive_already_applied' | 'transfer_receive_cleanup_complete';
/**
* The provisioned namespace the warning relates to, when applicable.
*/
namespace_id?: string;
}
}
interface Metadata {
/**
* Email of the user who created the version.
*/
author_email?: string;
/**
* Identifier of the user who created the version.
*/
author_id?: string;
/**
* When the version was created.
*/
created_on?: string;
/**
* Whether the version can be previewed.
*/
hasPreview?: boolean;
/**
* When the version was last modified.
*/
modified_on?: string;
/**
* The source of the version upload.
*/
source?: 'unknown' | 'api' | 'wrangler' | 'terraform' | 'dash' | 'cf_cli' | 'dash_template' | 'integration' | 'quick_editor' | 'playground' | 'workersci';
}
}
export interface VersionListResponse {
/**
* Unique identifier for the version.
*/
id?: string;
metadata?: VersionListResponse.Metadata;
/**
* Sequential version number.
*/
number?: number;
}
export declare namespace VersionListResponse {
interface Metadata {
/**
* Email of the user who created the version.
*/
author_email?: string;
/**
* Identifier of the user who created the version.
*/
author_id?: string;
/**
* When the version was created.
*/
created_on?: string;
/**
* Whether the version can be previewed.
*/
hasPreview?: boolean;
/**
* When the version was last modified.
*/
modified_on?: string;
/**
* The source of the version upload.
*/
source?: 'unknown' | 'api' | 'wrangler' | 'terraform' | 'dash' | 'cf_cli' | 'dash_template' | 'integration' | 'quick_editor' | 'playground' | 'workersci';
}
}
export interface VersionGetResponse {
resources: VersionGetResponse.Resources;
/**
* Unique identifier for the version.
*/
id?: string;
metadata?: VersionGetResponse.Metadata;
/**
* Sequential version number.
*/
number?: number;
}
export declare namespace VersionGetResponse {
interface Resources {
/**
* List of bindings attached to a Worker. You can find more about bindings on our
* docs:
* https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/#bindings.
*/
bindings?: Resources.Bindings;
script?: Resources.Script;
/**
* Runtime configuration for the Worker.
*/
script_runtime?: Resources.ScriptRuntime;
}
namespace Resources {
/**
* List of bindings attached to a Worker. You can find more about bindings on our
* docs:
* https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/#bindings.
*/
interface Bindings {
}
interface Script {
/**
* Hashed script content
*/
etag?: string;
/**
* The names of handlers exported as part of the default export.
*/
handlers?: Array<string>;
/**
* The client most recently used to deploy this Worker.
*/
last_deployed_from?: string;
/**
* Named exports, such as Durable Object class implementations and named
* entrypoints.
*/
named_handlers?: Array<Script.NamedHandler>;
}
namespace Script {
interface NamedHandler {
/**
* The names of handlers exported as part of the named export.
*/
handlers?: Array<string>;
/**
* The name of the exported class or entrypoint.
*/
name?: string;
}
}
/**
* Runtime configuration for the Worker.
*/
interface ScriptRuntime {
/**
* Date indicating targeted support in the Workers runtime. Backwards incompatible
* fixes to the runtime following this date will not affect this Worker.
*/
compatibility_date?: string;
/**
* Flags that enable or disable certain features in the Workers runtime.
*/
compatibility_flags?: Array<string>;
/**
* Declarative exports for this version, including Durable Object classes (with
* their `storage` backend) and named Worker entrypoints. Tombstoned lifecycle
* entries are omitted, so only live exports (`created` and `expecting-transfer`)
* are returned.
*/
exports?: {
[key: string]: ScriptRuntime.WorkersWorkerExport | ScriptRuntime.WorkersDurableObjectExport | ScriptRuntime.WorkersDurableObjectDeletedExport | ScriptRuntime.WorkersDurableObjectRenamedExport | ScriptRuntime.WorkersDurableObjectTransferredExport | ScriptRuntime.WorkersDurableObjectExpectingTransferExport;
};
/**
* Resource limits for the Worker.
*/
limits?: ScriptRuntime.Limits;
/**
* The tag of the Durable Object migration that was most recently applied for this
* Worker.
*/
migration_tag?: string;
/**
* Usage model for the Worker invocations.
*/
usage_model?: 'bundled' | 'unbound' | 'standard';
}
namespace ScriptRuntime {
/**
* A named Worker entrypoint export (`type: worker`). Worker entrypoints are always
* live (`state: created`) and carry no storage or lifecycle fields. The optional
* `cache` block overrides the Worker's global `cache_options.enabled` for this
* entrypoint.
*/
interface WorkersWorkerExport {
/**
* Marks this entry as a Worker entrypoint export.
*/
type: 'worker';
/**
* Cache override for this entrypoint. Overrides the Worker's global
* `cache_options.enabled` for this entrypoint only.
*/
cache?: WorkersWorkerExport.Cache;
/**
* Live export. May be omitted; defaults to `created`.
*/
state?: 'created';
}
namespace WorkersWorkerExport {
/**
* Cache override for this entrypoint. Overrides the Worker's global
* `cache_options.enabled` for this entrypoint only.
*/
interface Cache {
/**
* Whether caching is enabled for this entrypoint.
*/
enabled: boolean;
}
}
/**
* A live Durable Object export (`state: created`, the default). The platform
* auto-provisions the namespace on first deploy, matches it on subsequent deploys,
* and never mutates or deletes it as a side effect of a code-only change.
* `storage` is required; `renamed_to`, `transferred_to` and `transfer_from` are
* not allowed on a live entry.
*/
interface WorkersDurableObjectExport {
/**
* Durable Object storage backend. `sqlite` is the recommended (and only) backend
* for new namespaces. `legacy-kv` is accepted only for a class whose namespace
* already exists as KV-backed; the `exports` flow never provisions a new
* `legacy-kv` namespace.
*/
storage: 'sqlite' | 'legacy-kv';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
/**
* Name of the container (declared in the upload's `metadata.containers`) that
* backs this Durable Object. When set, the namespace is container-enabled. Valid
* only on live entries.
*/
container?: string;
/**
* Live export. May be omitted; defaults to `created`.
*/
state?: 'created';
}
/**
* A `deleted` tombstone: retires the provisioned namespace for this class and all
* of its data. The class must be absent from the uploaded code and no other Worker
* in the account may bind to the namespace, otherwise the deploy is rejected. No
* other fields are allowed. Deletion is irreversible.
*/
interface WorkersDurableObjectDeletedExport {
/**
* Tombstone that deletes the namespace.
*/
state: 'deleted';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
}
/**
* A `renamed` tombstone: rewrites the provisioned namespace's class name from this
* map key to `renamed_to`. The source class may stay in code during the rollout
* window (an info notice is emitted). `storage`, `transferred_to` and
* `transfer_from` are not allowed.
*/
interface WorkersDurableObjectRenamedExport {
/**
* Tombstone that renames the namespace's class.
*/
state: 'renamed';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
}
/**
* A `transferred` tombstone (source side of a two-phase transfer): hands ownership
* of the provisioned namespace to another script in the same account, named by
* `transferred_to`. The target must have already deployed a matching
* `expecting-transfer` entry. The source class may stay in code during the rollout
* window (an info notice is emitted). `storage`, `renamed_to` and `transfer_from`
* are not allowed.
*/
interface WorkersDurableObjectTransferredExport {
/**
* Tombstone that transfers the namespace to another script.
*/
state: 'transferred';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
}
/**
* The target side of a two-phase transfer (`state: expecting-transfer`). Declares
* that this script expects to receive a namespace for this class from the
* `transfer_from` script. This is a live entry, not a tombstone: bindings resolve
* through the source's namespace until the source commits with a `transferred`
* tombstone. `storage` and `transfer_from` are required; `renamed_to` and
* `transferred_to` are not allowed.
*/
interface WorkersDurableObjectExpectingTransferExport {
/**
* Target side of a two-phase transfer.
*/
state: 'expecting-transfer';
/**
* Durable Object storage backend. `sqlite` is the recommended (and only) backend
* for new namespaces. `legacy-kv` is accepted only for a class whose namespace
* already exists as KV-backed; the `exports` flow never provisions a new
* `legacy-kv` namespace.
*/
storage: 'sqlite' | 'legacy-kv';
/**
* The source script name to receive the namespace from. Must be in the same
* account and dispatch-namespace context. Present on reads for
* `expecting-transfer` entries.
*/
transfer_from: string;
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
/**
* Name of the container (declared in the upload's `metadata.containers`) that
* backs this Durable Object once the transfer settles. Valid only on live entries.
*/
container?: string;
}
/**
* Resource limits for the Worker.
*/
interface Limits {
/**
* The amount of CPU time this Worker can use in milliseconds.
*/
cpu_ms?: number;
}
}
}
interface Metadata {
/**
* Email of the user who created the version.
*/
author_email?: string;
/**
* Identifier of the user who created the version.
*/
author_id?: string;
/**
* When the version was created.
*/
created_on?: string;
/**
* Whether the version can be previewed.
*/
hasPreview?: boolean;
/**
* When the version was last modified.
*/
modified_on?: string;
/**
* The source of the version upload.
*/
source?: 'unknown' | 'api' | 'wrangler' | 'terraform' | 'dash' | 'cf_cli' | 'dash_template' | 'integration' | 'quick_editor' | 'playground' | 'workersci';
}
}
export interface VersionCreateParams {
/**
* Path param: Identifier.
*/
account_id: string;
/**
* Body param: JSON-encoded metadata about the uploaded parts and Worker
* configuration.
*/
metadata: VersionCreateParams.Metadata;
/**
* Query param: When set to "strict", the upload will fail if any `inherit` type
* bindings cannot be resolved against the previous version of the Worker. Without
* this, unresolvable inherit bindings are silently dropped.
*/
bindings_inherit?: 'strict';
/**
* Body param: An array of modules (often JavaScript files) comprising a Worker
* script. At least one module must be present and referenced in the metadata as
* `main_module` or `body_part` by filename.<br/>Possible Content-Type(s) are:
* `application/javascript+module`, `text/javascript+module`,
* `application/javascript`, `text/javascript`, `text/x-python`,
* `text/x-python-requirement`, `application/wasm`, `text/plain`,
* `application/octet-stream`, `application/source-map`.
*/
files?: Array<Uploadable>;
}
export declare namespace VersionCreateParams {
/**
* JSON-encoded metadata about the uploaded parts and Worker configuration.
*/
interface Metadata {
/**
* Name of the uploaded file that contains the main module (e.g. the file exporting
* a `fetch` handler). Indicates a `module syntax` Worker, which is required for
* Version Upload.
*/
main_module: string;
annotations?: Metadata.Annotations;
/**
* List of bindings attached to a Worker. You can find more about bindings on our
* docs:
* https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/#bindings.
*/
bindings?: Array<Metadata.WorkersBindingKindAI | Metadata.WorkersBindingKindAISearch | Metadata.WorkersBindingKindAISearchNamespace | Metadata.WorkersBindingKindMessaging | Metadata.WorkersBindingKindAnalyticsEngine | Metadata.WorkersBindingKindArtifacts | Metadata.WorkersBindingKindAssets | Metadata.WorkersBindingKindBrowser | Metadata.WorkersBindingKindD1 | Metadata.WorkersBindingKindDataBlob | Metadata.WorkersBindingKindDispatchNamespace | Metadata.WorkersBindingKindDurableObjectNamespace | Metadata.WorkersBindingKindHyperdrive | Metadata.WorkersBindingKindInherit | Metadata.WorkersBindingKindImages | Metadata.WorkersBindingKindJson | Metadata.WorkersBindingKindKVNamespace | Metadata.WorkersBindingKindMedia | Metadata.WorkersBindingKindMTLSCertificate | Metadata.WorkersBindingKindPlainText | Metadata.WorkersBindingKindPipelines | Metadata.WorkersBindingKindK2 | Metadata.WorkersBindingKindQueue | Metadata.WorkersBindingKindRatelimit | Metadata.WorkersBindingKindR2Bucket | Metadata.WorkersBindingKindSecretText | Metadata.WorkersBindingKindSendEmail | Metadata.WorkersBindingKindService | Metadata.WorkersBindingKindTextBlob | Metadata.WorkersBindingKindVectorize | Metadata.WorkersBindingKindVersionMetadata | Metadata.WorkersBindingKindSecretsStoreSecret | Metadata.WorkersBindingKindFlagship | Metadata.WorkersBindingKindSecretKey | Metadata.WorkersBindingKindWorkflow | Metadata.WorkersBindingKindWasmModule | Metadata.WorkersBindingKindVPCService | Metadata.WorkersBindingKindVPCNetwork>;
/**
* Global CacheW configuration for the Worker. When caching is on, the platform
* provisions a `cloudflare.app` zone for the Worker. A `type: worker` entry in the
* `exports` map can override this value for a single entrypoint.
*/
cache_options?: Metadata.CacheOptions;
/**
* Date indicating targeted support in the Workers runtime. Backwards incompatible
* fixes to the runtime following this date will not affect this Worker.
*/
compatibility_date?: string;
/**
* Flags that enable or disable certain features in the Workers runtime. Used to
* enable upcoming features or opt in or out of specific changes not included in a
* `compatibility_date`.
*/
compatibility_flags?: Array<string>;
/**
* Declarative exports for this version. Worker entrypoint entries (`type: worker`)
* carry cache configuration for that entrypoint.
*/
exports?: {
[key: string]: Metadata.WorkersWorkerExport | Metadata.WorkersDurableObjectExport | Metadata.WorkersDurableObjectDeletedExport | Metadata.WorkersDurableObjectRenamedExport | Metadata.WorkersDurableObjectTransferredExport | Metadata.WorkersDurableObjectExpectingTransferExport;
};
/**
* List of binding types to keep from previous_upload.
*/
keep_bindings?: Array<string>;
/**
* The list of npm packages that were installed and used when this Worker version
* was built.
*/
package_dependencies?: Array<Metadata.PackageDependency>;
/**
* Usage model for the Worker invocations.
*/
usage_model?: 'standard' | 'bundled' | 'unbound';
}
namespace Metadata {
interface Annotations {
/**
* Associated alias for a version.
*/
'workers/alias'?: string;
/**
* Full commit SHA associated with the version, detected from the CI environment.
* Maximum 64 bytes.
*/
'workers/commit_sha'?: string;
/**
* Human-readable message about the version. Truncated to 1000 bytes if longer.
*/
'workers/message'?: string;
/**
* Number of the pull or merge request associated with the version, detected from
* the CI environment. Maximum 20 bytes.
*/
'workers/pull_request_number'?: string;
/**
* Title of the pull or merge request associated with the version, detected from
* the CI environment. Maximum 512 bytes.
*/
'workers/pull_request_title'?: string;
/**
* URL of the pull or merge request associated with the version, detected from the
* CI environment. Maximum 512 bytes.
*/
'workers/pull_request_url'?: string;
/**
* URL of the source repository the version was built from, detected from the CI
* environment. Maximum 512 bytes.
*/
'workers/repository_url'?: string;
/**
* User-provided identifier for the version. Maximum 100 bytes.
*/
'workers/tag'?: string;
}
interface WorkersBindingKindAI {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'ai';
}
interface WorkersBindingKindAISearch {
/**
* The user-chosen instance name. Must exist at deploy time. The worker can search,
* chat, update, and manage items/jobs on this instance.
*/
instance_name: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'ai_search';
/**
* The namespace the instance belongs to. Defaults to "default" if omitted.
* Customers who don't use namespaces can simply omit this field.
*/
namespace?: string;
}
interface WorkersBindingKindAISearchNamespace {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The user-chosen namespace name. Must exist before deploy -- Wrangler handles
* auto-creation on deploy failure (R2 bucket pattern). The "default" namespace is
* auto-created by config-api for new accounts. Grants full access (CRUD + search +
* chat) to all instances within the namespace.
*/
namespace: string;
/**
* The kind of resource that the binding provides.
*/
type: 'ai_search_namespace';
}
interface WorkersBindingKindMessaging {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The Messaging namespace to bind to.
*/
namespace: string;
/**
* The kind of resource that the binding provides.
*/
type: 'messaging';
}
interface WorkersBindingKindAnalyticsEngine {
/**
* The name of the dataset to bind to.
*/
dataset: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'analytics_engine';
}
interface WorkersBindingKindArtifacts {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The Artifacts namespace exposed to the Worker in the Worker's account. Must be
* 2-63 characters, start with an ASCII alphanumeric character, contain only ASCII
* alphanumeric characters, dots, underscores, and hyphens, and must not end with a
* hyphen. The namespace does not need to be created before binding it.
*/
namespace: string;
/**
* The kind of resource that the binding provides.
*/
type: 'artifacts';
}
interface WorkersBindingKindAssets {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'assets';
}
interface WorkersBindingKindBrowser {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'browser';
}
interface WorkersBindingKindD1 {
/**
* Identifier of the D1 database to bind to.
*/
database_id: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'd1';
/**
* @deprecated This property has been renamed to `database_id`.
*/
id?: string;
}
interface WorkersBindingKindDataBlob {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The name of the file containing the data content. Only accepted for
* `service worker syntax` Workers.
*/
part: string;
/**
* @deprecated The kind of resource that the binding provides.
*/
type: 'data_blob';
}
interface WorkersBindingKindDispatchNamespace {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The name of the dispatch namespace.
*/
namespace: string;
/**
* The kind of resource that the binding provides.
*/
type: 'dispatch_namespace';
/**
* Outbound worker.
*/
outbound?: WorkersBindingKindDispatchNamespace.Outbound;
}
namespace WorkersBindingKindDispatchNamespace {
/**
* Outbound worker.
*/
interface Outbound {
/**
* Pass information from the Dispatch Worker to the Outbound Worker through the
* parameters.
*/
params?: Array<Outbound.Param>;
/**
* Outbound worker.
*/
worker?: Outbound.Worker;
}
namespace Outbound {
interface Param {
/**
* Name of the parameter.
*/
name: string;
}
/**
* Outbound worker.
*/
interface Worker {
/**
* Entrypoint to invoke on the outbound worker.
*/
entrypoint?: string;
/**
* Environment of the outbound worker.
*/
environment?: string;
/**
* Name of the outbound worker.
*/
service?: string;
}
}
}
interface WorkersBindingKindDurableObjectNamespace {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'durable_object_namespace';
/**
* The exported class name of the Durable Object.
*/
class_name?: string;
/**
* The dispatch namespace the Durable Object script belongs to.
*/
dispatch_namespace?: string;
/**
* The environment of the script_name to bind to.
*/
environment?: string;
/**
* Namespace identifier tag.
*/
namespace_id?: string;
/**
* The script where the Durable Object is defined, if it is external to this
* Worker.
*/
script_name?: string;
}
interface WorkersBindingKindHyperdrive {
/**
* Identifier of the Hyperdrive connection to bind to.
*/
id: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'hyperdrive';
}
interface WorkersBindingKindInherit {
/**
* The name of the inherited binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'inherit';
/**
* The old name of the inherited binding. If set, the binding will be renamed from
* `old_name` to `name` in the new version. If not set, the binding will keep the
* same name between versions.
*/
old_name?: string;
/**
* Identifier for the version to inherit the binding from, which can be the version
* ID or the literal "latest" to inherit from the latest version. Defaults to
* inheriting the binding from the latest version.
*/
version_id?: string;
}
interface WorkersBindingKindImages {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'images';
}
interface WorkersBindingKindJson {
/**
* JSON data to use.
*/
json: unknown;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'json';
}
interface WorkersBindingKindKVNamespace {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Namespace identifier tag.
*/
namespace_id: string;
/**
* The kind of resource that the binding provides.
*/
type: 'kv_namespace';
}
interface WorkersBindingKindMedia {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'media';
}
interface WorkersBindingKindMTLSCertificate {
/**
* Identifier of the certificate to bind to.
*/
certificate_id: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'mtls_certificate';
}
interface WorkersBindingKindPlainText {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The text value to use.
*/
text: string;
/**
* The kind of resource that the binding provides.
*/
type: 'plain_text';
}
interface WorkersBindingKindPipelines {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of the Pipeline to bind to.
*/
pipeline: string;
/**
* The kind of resource that the binding provides.
*/
type: 'pipelines';
}
/**
* A K2 stream binding. Available only to accounts enabled for K2.
*/
interface WorkersBindingKindK2 {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* ID of a K2 stream owned by the account deploying the Worker.
*/
stream: string;
/**
* The kind of resource that the binding provides.
*/
type: 'k2';
}
interface WorkersBindingKindQueue {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of the Queue to bind to.
*/
queue_name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'queue';
}
interface WorkersBindingKindRatelimit {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Identifier of the rate limit namespace to bind to.
*/
namespace_id: string;
/**
* The rate limit configuration.
*/
simple: WorkersBindingKindRatelimit.Simple;
/**
* The kind of resource that the binding provides.
*/
type: 'ratelimit';
}
namespace WorkersBindingKindRatelimit {
/**
* The rate limit configuration.
*/
interface Simple {
/**
* The limit (requests per period).
*/
limit: number;
/**
* The period in seconds.
*/
period: number;
/**
* Duration in seconds to apply the mitigation action after the rate limit is
* exceeded. Valid values are 0 (disabled), 10, or multiples of 60 up to 86400.
* Must be greater than or equal to the period when non-zero.
*/
mitigation_timeout?: number;
}
}
interface WorkersBindingKindR2Bucket {
/**
* R2 bucket to bind to.
*/
bucket_name: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'r2_bucket';
/**
* The
* [jurisdiction](https://developers.cloudflare.com/r2/reference/data-location/#jurisdictional-restrictions)
* of the R2 bucket.
*/
jurisdiction?: 'eu' | 'fedramp' | 'fedramp-high' | 'us';
}
interface WorkersBindingKindSecretText {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The secret value to use.
*/
text: string;
/**
* The kind of resource that the binding provides.
*/
type: 'secret_text';
}
interface WorkersBindingKindSendEmail {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'send_email';
/**
* List of allowed destination addresses.
*/
allowed_destination_addresses?: Array<string>;
/**
* List of allowed sender addresses.
*/
allowed_sender_addresses?: Array<string>;
/**
* Destination address for the email.
*/
destination_address?: string;
}
interface WorkersBindingKindService {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of Worker to bind to.
*/
service: string;
/**
* The kind of resource that the binding provides.
*/
type: 'service';
/**
* Entrypoint to invoke on the target Worker.
*/
entrypoint?: string;
/**
* Optional environment if the Worker utilizes one.
*/
environment?: string;
}
interface WorkersBindingKindTextBlob {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The name of the file containing the text content. Only accepted for
* `service worker syntax` Workers.
*/
part: string;
/**
* @deprecated The kind of resource that the binding provides.
*/
type: 'text_blob';
}
interface WorkersBindingKindVectorize {
/**
* Name of the Vectorize index to bind to.
*/
index_name: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'vectorize';
}
interface WorkersBindingKindVersionMetadata {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'version_metadata';
}
interface WorkersBindingKindSecretsStoreSecret {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of the secret in the store.
*/
secret_name: string;
/**
* ID of the store containing the secret.
*/
store_id: string;
/**
* The kind of resource that the binding provides.
*/
type: 'secrets_store_secret';
}
interface WorkersBindingKindFlagship {
/**
* ID of the Flagship app to bind to for feature flag evaluation.
*/
app_id: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'flagship';
}
interface WorkersBindingKindSecretKey {
/**
* Algorithm-specific key parameters.
* [Learn more](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey#algorithm).
*/
algorithm: unknown;
/**
* Data format of the key.
* [Learn more](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey#format).
*/
format: 'raw' | 'pkcs8' | 'spki' | 'jwk';
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'secret_key';
/**
* Allowed operations with the key.
* [Learn more](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey#keyUsages).
*/
usages: Array<'encrypt' | 'decrypt' | 'sign' | 'verify' | 'deriveKey' | 'deriveBits' | 'wrapKey' | 'unwrapKey'>;
/**
* Base64-encoded key data. Required if `format` is "raw", "pkcs8", or "spki".
*/
key_base64?: string;
/**
* Key data in
* [JSON Web Key](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey#json_web_key)
* format. Required if `format` is "jwk".
*/
key_jwk?: unknown;
}
interface WorkersBindingKindWorkflow {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'workflow';
/**
* Name of the Workflow to bind to.
*/
workflow_name: string;
/**
* Class name of the Workflow. Should only be provided if the Workflow belongs to
* this script.
*/
class_name?: string;
/**
* Script name that contains the Workflow. If not provided, defaults to this script
* name.
*/
script_name?: string;
}
interface WorkersBindingKindWasmModule {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The name of the file containing the WebAssembly module content. Only accepted
* for `service worker syntax` Workers.
*/
part: string;
/**
* @deprecated The kind of resource that the binding provides.
*/
type: 'wasm_module';
}
interface WorkersBindingKindVPCService {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Identifier of the VPC service to bind to.
*/
service_id: string;
/**
* The kind of resource that the binding provides.
*/
type: 'vpc_service';
}
interface WorkersBindingKindVPCNetwork {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'vpc_network';
/**
* Enables Gateway identity for the binding. Requires network_id to be
* "cf1:network" and cannot be combined with tunnel_id.
*/
identity?: 'runtime-email-alpha';
/**
* Identifier of the network to bind to. Only "cf1:network" is currently supported.
* Mutually exclusive with tunnel_id.
*/
network_id?: string;
/**
* UUID of the Cloudflare Tunnel to bind to. Mutually exclusive with network_id.
*/
tunnel_id?: string;
}
/**
* Global CacheW configuration for the Worker. When caching is on, the platform
* provisions a `cloudflare.app` zone for the Worker. A `type: worker` entry in the
* `exports` map can override this value for a single entrypoint.
*/
interface CacheOptions {
/**
* Whether caching is enabled for this Worker.
*/
enabled: boolean;
/**
* Whether cached responses are shared across Worker version uploads. This is
* independent of `enabled`. It can stay true while caching is off, so the
* preference survives turning caching off and back on.
*/
cross_version_cache?: boolean;
}
/**
* A named Worker entrypoint export (`type: worker`). Worker entrypoints are always
* live (`state: created`) and carry no storage or lifecycle fields. The optional
* `cache` block overrides the Worker's global `cache_options.enabled` for this
* entrypoint.
*/
interface WorkersWorkerExport {
/**
* Marks this entry as a Worker entrypoint export.
*/
type: 'worker';
/**
* Cache override for this entrypoint. Overrides the Worker's global
* `cache_options.enabled` for this entrypoint only.
*/
cache?: WorkersWorkerExport.Cache;
/**
* Live export. May be omitted; defaults to `created`.
*/
state?: 'created';
}
namespace WorkersWorkerExport {
/**
* Cache override for this entrypoint. Overrides the Worker's global
* `cache_options.enabled` for this entrypoint only.
*/
interface Cache {
/**
* Whether caching is enabled for this entrypoint.
*/
enabled: boolean;
}
}
/**
* A live Durable Object export (`state: created`, the default). The platform
* auto-provisions the namespace on first deploy, matches it on subsequent deploys,
* and never mutates or deletes it as a side effect of a code-only change.
* `storage` is required; `renamed_to`, `transferred_to` and `transfer_from` are
* not allowed on a live entry.
*/
interface WorkersDurableObjectExport {
/**
* Durable Object storage backend. `sqlite` is the recommended (and only) backend
* for new namespaces. `legacy-kv` is accepted only for a class whose namespace
* already exists as KV-backed; the `exports` flow never provisions a new
* `legacy-kv` namespace.
*/
storage: 'sqlite' | 'legacy-kv';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
/**
* Name of the container (declared in the upload's `metadata.containers`) that
* backs this Durable Object. When set, the namespace is container-enabled. Valid
* only on live entries.
*/
container?: string;
/**
* Live export. May be omitted; defaults to `created`.
*/
state?: 'created';
}
/**
* A `deleted` tombstone: retires the provisioned namespace for this class and all
* of its data. The class must be absent from the uploaded code and no other Worker
* in the account may bind to the namespace, otherwise the deploy is rejected. No
* other fields are allowed. Deletion is irreversible.
*/
interface WorkersDurableObjectDeletedExport {
/**
* Tombstone that deletes the namespace.
*/
state: 'deleted';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
}
/**
* A `renamed` tombstone: rewrites the provisioned namespace's class name from this
* map key to `renamed_to`. The source class may stay in code during the rollout
* window (an info notice is emitted). `storage`, `transferred_to` and
* `transfer_from` are not allowed.
*/
interface WorkersDurableObjectRenamedExport {
/**
* The destination class name. Must differ from the source class (the map key) and
* must be declared as a live (`created`) entry in the same `exports` map.
* Write-only: never present in GET responses.
*/
renamed_to: string;
/**
* Tombstone that renames the namespace's class.
*/
state: 'renamed';
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
}
/**
* A `transferred` tombstone (source side of a two-phase transfer): hands ownership
* of the provisioned namespace to another script in the same account, named by
* `transferred_to`. The target must have already deployed a matching
* `expecting-transfer` entry. The source class may stay in code during the rollout
* window (an info notice is emitted). `storage`, `renamed_to` and `transfer_from`
* are not allowed.
*/
interface WorkersDurableObjectTransferredExport {
/**
* Tombstone that transfers the namespace to another script.
*/
state: 'transferred';
/**
* The destination script name. Must be in the same account and the same
* dispatch-namespace context (or both non-dispatch). Cross-dispatch-namespace
* transfers are rejected. Write-only: never present in GET responses.
*/
transferred_to: string;
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
}
/**
* The target side of a two-phase transfer (`state: expecting-transfer`). Declares
* that this script expects to receive a namespace for this class from the
* `transfer_from` script. This is a live entry, not a tombstone: bindings resolve
* through the source's namespace until the source commits with a `transferred`
* tombstone. `storage` and `transfer_from` are required; `renamed_to` and
* `transferred_to` are not allowed.
*/
interface WorkersDurableObjectExpectingTransferExport {
/**
* Target side of a two-phase transfer.
*/
state: 'expecting-transfer';
/**
* Durable Object storage backend. `sqlite` is the recommended (and only) backend
* for new namespaces. `legacy-kv` is accepted only for a class whose namespace
* already exists as KV-backed; the `exports` flow never provisions a new
* `legacy-kv` namespace.
*/
storage: 'sqlite' | 'legacy-kv';
/**
* The source script name to receive the namespace from. Must be in the same
* account and dispatch-namespace context. Present on reads for
* `expecting-transfer` entries.
*/
transfer_from: string;
/**
* Marks this entry as a Durable Object export.
*/
type: 'durable-object';
/**
* Name of the container (declared in the upload's `metadata.containers`) that
* backs this Durable Object once the transfer settles. Valid only on live entries.
*/
container?: string;
}
interface PackageDependency {
/**
* The exact version that was resolved and installed by the package manager.
*/
installedVersion: string;
/**
* The npm package name.
*/
name: string;
/**
* The version constraint as written in package.json.
*/
packageJsonVersion: string;
}
}
}
export interface VersionListParams extends V4PagePaginationParams {
/**
* Path param: Identifier.
*/
account_id: string;
/**
* Query param: Only return versions that can be used in a deployment. Ignores
* pagination.
*/
deployable?: boolean;
}
export interface VersionGetParams {
/**
* Identifier.
*/
account_id: string;
/**
* Name of the script.
*/
script_name: string;
}
export declare namespace Versions {
export { type VersionCreateResponse as VersionCreateResponse, type VersionListResponse as VersionListResponse, type VersionGetResponse as VersionGetResponse, type VersionListResponsesV4PagePagination as VersionListResponsesV4PagePagination, type VersionCreateParams as VersionCreateParams, type VersionListParams as VersionListParams, type VersionGetParams as VersionGetParams, };
}
//# sourceMappingURL=versions.d.mts.map