cloudflare
Version:
The official TypeScript library for the Cloudflare API
2,134 lines (1,801 loc) • 56.3 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../../resource';
import * as Core from '../../../core';
import * as WorkersAPI from '../workers';
import * as TailAPI from './tail';
export class ScriptAndVersionSettings extends APIResource {
/**
* Patch metadata or config, such as bindings or usage model.
*
* @example
* ```ts
* const response =
* await client.workers.scripts.scriptAndVersionSettings.edit(
* 'this-is_my_script-01',
* { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
* );
* ```
*/
edit(
scriptName: string,
params: ScriptAndVersionSettingEditParams,
options?: Core.RequestOptions,
): Core.APIPromise<ScriptAndVersionSettingEditResponse> {
const { account_id, ...body } = params;
return (
this._client.patch(
`/accounts/${account_id}/workers/scripts/${scriptName}/settings`,
Core.multipartFormRequestOptions({ body, ...options, __multipartSyntax: 'json' }),
) as Core.APIPromise<{ result: ScriptAndVersionSettingEditResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Get metadata and config, such as bindings or usage model.
*
* @example
* ```ts
* const scriptAndVersionSetting =
* await client.workers.scripts.scriptAndVersionSettings.get(
* 'this-is_my_script-01',
* { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
* );
* ```
*/
get(
scriptName: string,
params: ScriptAndVersionSettingGetParams,
options?: Core.RequestOptions,
): Core.APIPromise<ScriptAndVersionSettingGetResponse> {
const { account_id } = params;
return (
this._client.get(
`/accounts/${account_id}/workers/scripts/${scriptName}/settings`,
options,
) as Core.APIPromise<{ result: ScriptAndVersionSettingGetResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export interface ScriptAndVersionSettingEditResponse {
/**
* 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<
| ScriptAndVersionSettingEditResponse.WorkersBindingKindAI
| ScriptAndVersionSettingEditResponse.WorkersBindingKindAnalyticsEngine
| ScriptAndVersionSettingEditResponse.WorkersBindingKindAssets
| ScriptAndVersionSettingEditResponse.WorkersBindingKindBrowser
| ScriptAndVersionSettingEditResponse.WorkersBindingKindD1
| ScriptAndVersionSettingEditResponse.WorkersBindingKindDataBlob
| ScriptAndVersionSettingEditResponse.WorkersBindingKindDispatchNamespace
| ScriptAndVersionSettingEditResponse.WorkersBindingKindDurableObjectNamespace
| ScriptAndVersionSettingEditResponse.WorkersBindingKindHyperdrive
| ScriptAndVersionSettingEditResponse.WorkersBindingKindInherit
| ScriptAndVersionSettingEditResponse.WorkersBindingKindImages
| ScriptAndVersionSettingEditResponse.WorkersBindingKindJson
| ScriptAndVersionSettingEditResponse.WorkersBindingKindKVNamespace
| ScriptAndVersionSettingEditResponse.WorkersBindingKindMTLSCertificate
| ScriptAndVersionSettingEditResponse.WorkersBindingKindPlainText
| ScriptAndVersionSettingEditResponse.WorkersBindingKindPipelines
| ScriptAndVersionSettingEditResponse.WorkersBindingKindQueue
| ScriptAndVersionSettingEditResponse.WorkersBindingKindR2Bucket
| ScriptAndVersionSettingEditResponse.WorkersBindingKindSecretText
| ScriptAndVersionSettingEditResponse.WorkersBindingKindSendEmail
| ScriptAndVersionSettingEditResponse.WorkersBindingKindService
| ScriptAndVersionSettingEditResponse.WorkersBindingKindTailConsumer
| ScriptAndVersionSettingEditResponse.WorkersBindingKindTextBlob
| ScriptAndVersionSettingEditResponse.WorkersBindingKindVectorize
| ScriptAndVersionSettingEditResponse.WorkersBindingKindVersionMetadata
| ScriptAndVersionSettingEditResponse.WorkersBindingKindSecretsStoreSecret
| ScriptAndVersionSettingEditResponse.WorkersBindingKindSecretKey
| ScriptAndVersionSettingEditResponse.WorkersBindingKindWorkflow
| ScriptAndVersionSettingEditResponse.WorkersBindingKindWasmModule
>;
/**
* 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>;
/**
* Limits to apply for this Worker.
*/
limits?: ScriptAndVersionSettingEditResponse.Limits;
/**
* Whether Logpush is turned on for the Worker.
*/
logpush?: boolean;
/**
* Observability settings for the Worker.
*/
observability?: ScriptAndVersionSettingEditResponse.Observability;
/**
* Configuration for
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
*/
placement?: ScriptAndVersionSettingEditResponse.Placement;
/**
* Tags associated with the Worker.
*/
tags?: Array<string>;
/**
* List of Workers that will consume logs from the attached Worker.
*/
tail_consumers?: Array<TailAPI.ConsumerScript>;
/**
* Usage model for the Worker invocations.
*/
usage_model?: 'standard' | 'bundled' | 'unbound';
}
export namespace ScriptAndVersionSettingEditResponse {
export interface WorkersBindingKindAI {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'ai';
}
export 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';
}
export interface WorkersBindingKindAssets {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'assets';
}
export interface WorkersBindingKindBrowser {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'browser';
}
export interface WorkersBindingKindD1 {
/**
* Identifier of the D1 database to bind to.
*/
id: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'd1';
}
export 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';
}
export interface WorkersBindingKindDispatchNamespace {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Namespace to bind to.
*/
namespace: string;
/**
* The kind of resource that the binding provides.
*/
type: 'dispatch_namespace';
/**
* Outbound worker.
*/
outbound?: WorkersBindingKindDispatchNamespace.Outbound;
}
export namespace WorkersBindingKindDispatchNamespace {
/**
* Outbound worker.
*/
export interface Outbound {
/**
* Pass information from the Dispatch Worker to the Outbound Worker through the
* parameters.
*/
params?: Array<string>;
/**
* Outbound worker.
*/
worker?: Outbound.Worker;
}
export namespace Outbound {
/**
* Outbound worker.
*/
export interface Worker {
/**
* Environment of the outbound worker.
*/
environment?: string;
/**
* Name of the outbound worker.
*/
service?: string;
}
}
}
export 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 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;
}
export 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';
}
export 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;
}
export interface WorkersBindingKindImages {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'images';
}
export interface WorkersBindingKindJson {
/**
* JSON data to use.
*/
json: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'json';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export interface WorkersBindingKindSecretText {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'secret_text';
}
export 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;
}
export 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';
/**
* Optional environment if the Worker utilizes one.
*/
environment?: string;
}
export interface WorkersBindingKindTailConsumer {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of Tail Worker to bind to.
*/
service: string;
/**
* The kind of resource that the binding provides.
*/
type: 'tail_consumer';
}
export 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';
}
export 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';
}
export interface WorkersBindingKindVersionMetadata {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'version_metadata';
}
export 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';
}
export 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'
>;
}
export 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;
}
export 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';
}
/**
* Limits to apply for this Worker.
*/
export interface Limits {
/**
* The amount of CPU time this Worker can use in milliseconds.
*/
cpu_ms?: number;
}
/**
* Observability settings for the Worker.
*/
export interface Observability {
/**
* Whether observability is enabled for the Worker.
*/
enabled: boolean;
/**
* The sampling rate for incoming requests. From 0 to 1 (1 = 100%, 0.1 = 10%).
* Default is 1.
*/
head_sampling_rate?: number | null;
/**
* Log settings for the Worker.
*/
logs?: Observability.Logs | null;
}
export namespace Observability {
/**
* Log settings for the Worker.
*/
export interface Logs {
/**
* Whether logs are enabled for the Worker.
*/
enabled: boolean;
/**
* Whether
* [invocation logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/#invocation-logs)
* are enabled for the Worker.
*/
invocation_logs: boolean;
/**
* A list of destinations where logs will be exported to.
*/
destinations?: Array<string>;
/**
* The sampling rate for logs. From 0 to 1 (1 = 100%, 0.1 = 10%). Default is 1.
*/
head_sampling_rate?: number | null;
/**
* Whether log persistence is enabled for the Worker.
*/
persist?: boolean;
}
}
/**
* Configuration for
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
*/
export interface Placement {
/**
* Enables
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
*/
mode?: 'smart';
}
}
export interface ScriptAndVersionSettingGetResponse {
/**
* 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<
| ScriptAndVersionSettingGetResponse.WorkersBindingKindAI
| ScriptAndVersionSettingGetResponse.WorkersBindingKindAnalyticsEngine
| ScriptAndVersionSettingGetResponse.WorkersBindingKindAssets
| ScriptAndVersionSettingGetResponse.WorkersBindingKindBrowser
| ScriptAndVersionSettingGetResponse.WorkersBindingKindD1
| ScriptAndVersionSettingGetResponse.WorkersBindingKindDataBlob
| ScriptAndVersionSettingGetResponse.WorkersBindingKindDispatchNamespace
| ScriptAndVersionSettingGetResponse.WorkersBindingKindDurableObjectNamespace
| ScriptAndVersionSettingGetResponse.WorkersBindingKindHyperdrive
| ScriptAndVersionSettingGetResponse.WorkersBindingKindInherit
| ScriptAndVersionSettingGetResponse.WorkersBindingKindImages
| ScriptAndVersionSettingGetResponse.WorkersBindingKindJson
| ScriptAndVersionSettingGetResponse.WorkersBindingKindKVNamespace
| ScriptAndVersionSettingGetResponse.WorkersBindingKindMTLSCertificate
| ScriptAndVersionSettingGetResponse.WorkersBindingKindPlainText
| ScriptAndVersionSettingGetResponse.WorkersBindingKindPipelines
| ScriptAndVersionSettingGetResponse.WorkersBindingKindQueue
| ScriptAndVersionSettingGetResponse.WorkersBindingKindR2Bucket
| ScriptAndVersionSettingGetResponse.WorkersBindingKindSecretText
| ScriptAndVersionSettingGetResponse.WorkersBindingKindSendEmail
| ScriptAndVersionSettingGetResponse.WorkersBindingKindService
| ScriptAndVersionSettingGetResponse.WorkersBindingKindTailConsumer
| ScriptAndVersionSettingGetResponse.WorkersBindingKindTextBlob
| ScriptAndVersionSettingGetResponse.WorkersBindingKindVectorize
| ScriptAndVersionSettingGetResponse.WorkersBindingKindVersionMetadata
| ScriptAndVersionSettingGetResponse.WorkersBindingKindSecretsStoreSecret
| ScriptAndVersionSettingGetResponse.WorkersBindingKindSecretKey
| ScriptAndVersionSettingGetResponse.WorkersBindingKindWorkflow
| ScriptAndVersionSettingGetResponse.WorkersBindingKindWasmModule
>;
/**
* 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>;
/**
* Limits to apply for this Worker.
*/
limits?: ScriptAndVersionSettingGetResponse.Limits;
/**
* Whether Logpush is turned on for the Worker.
*/
logpush?: boolean;
/**
* Observability settings for the Worker.
*/
observability?: ScriptAndVersionSettingGetResponse.Observability;
/**
* Configuration for
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
*/
placement?: ScriptAndVersionSettingGetResponse.Placement;
/**
* Tags associated with the Worker.
*/
tags?: Array<string>;
/**
* List of Workers that will consume logs from the attached Worker.
*/
tail_consumers?: Array<TailAPI.ConsumerScript>;
/**
* Usage model for the Worker invocations.
*/
usage_model?: 'standard' | 'bundled' | 'unbound';
}
export namespace ScriptAndVersionSettingGetResponse {
export interface WorkersBindingKindAI {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'ai';
}
export 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';
}
export interface WorkersBindingKindAssets {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'assets';
}
export interface WorkersBindingKindBrowser {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'browser';
}
export interface WorkersBindingKindD1 {
/**
* Identifier of the D1 database to bind to.
*/
id: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'd1';
}
export 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';
}
export interface WorkersBindingKindDispatchNamespace {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Namespace to bind to.
*/
namespace: string;
/**
* The kind of resource that the binding provides.
*/
type: 'dispatch_namespace';
/**
* Outbound worker.
*/
outbound?: WorkersBindingKindDispatchNamespace.Outbound;
}
export namespace WorkersBindingKindDispatchNamespace {
/**
* Outbound worker.
*/
export interface Outbound {
/**
* Pass information from the Dispatch Worker to the Outbound Worker through the
* parameters.
*/
params?: Array<string>;
/**
* Outbound worker.
*/
worker?: Outbound.Worker;
}
export namespace Outbound {
/**
* Outbound worker.
*/
export interface Worker {
/**
* Environment of the outbound worker.
*/
environment?: string;
/**
* Name of the outbound worker.
*/
service?: string;
}
}
}
export 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 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;
}
export 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';
}
export 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;
}
export interface WorkersBindingKindImages {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'images';
}
export interface WorkersBindingKindJson {
/**
* JSON data to use.
*/
json: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'json';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export interface WorkersBindingKindSecretText {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'secret_text';
}
export 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;
}
export 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';
/**
* Optional environment if the Worker utilizes one.
*/
environment?: string;
}
export interface WorkersBindingKindTailConsumer {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of Tail Worker to bind to.
*/
service: string;
/**
* The kind of resource that the binding provides.
*/
type: 'tail_consumer';
}
export 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';
}
export 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';
}
export interface WorkersBindingKindVersionMetadata {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'version_metadata';
}
export 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';
}
export 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'
>;
}
export 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;
}
export 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';
}
/**
* Limits to apply for this Worker.
*/
export interface Limits {
/**
* The amount of CPU time this Worker can use in milliseconds.
*/
cpu_ms?: number;
}
/**
* Observability settings for the Worker.
*/
export interface Observability {
/**
* Whether observability is enabled for the Worker.
*/
enabled: boolean;
/**
* The sampling rate for incoming requests. From 0 to 1 (1 = 100%, 0.1 = 10%).
* Default is 1.
*/
head_sampling_rate?: number | null;
/**
* Log settings for the Worker.
*/
logs?: Observability.Logs | null;
}
export namespace Observability {
/**
* Log settings for the Worker.
*/
export interface Logs {
/**
* Whether logs are enabled for the Worker.
*/
enabled: boolean;
/**
* Whether
* [invocation logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/#invocation-logs)
* are enabled for the Worker.
*/
invocation_logs: boolean;
/**
* A list of destinations where logs will be exported to.
*/
destinations?: Array<string>;
/**
* The sampling rate for logs. From 0 to 1 (1 = 100%, 0.1 = 10%). Default is 1.
*/
head_sampling_rate?: number | null;
/**
* Whether log persistence is enabled for the Worker.
*/
persist?: boolean;
}
}
/**
* Configuration for
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
*/
export interface Placement {
/**
* Enables
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
*/
mode?: 'smart';
}
}
export interface ScriptAndVersionSettingEditParams {
/**
* Path param: Identifier.
*/
account_id: string;
/**
* Body param:
*/
settings?: ScriptAndVersionSettingEditParams.Settings;
}
export namespace ScriptAndVersionSettingEditParams {
export interface Settings {
/**
* 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<
| Settings.WorkersBindingKindAI
| Settings.WorkersBindingKindAnalyticsEngine
| Settings.WorkersBindingKindAssets
| Settings.WorkersBindingKindBrowser
| Settings.WorkersBindingKindD1
| Settings.WorkersBindingKindDataBlob
| Settings.WorkersBindingKindDispatchNamespace
| Settings.WorkersBindingKindDurableObjectNamespace
| Settings.WorkersBindingKindHyperdrive
| Settings.WorkersBindingKindInherit
| Settings.WorkersBindingKindImages
| Settings.WorkersBindingKindJson
| Settings.WorkersBindingKindKVNamespace
| Settings.WorkersBindingKindMTLSCertificate
| Settings.WorkersBindingKindPlainText
| Settings.WorkersBindingKindPipelines
| Settings.WorkersBindingKindQueue
| Settings.WorkersBindingKindR2Bucket
| Settings.WorkersBindingKindSecretText
| Settings.WorkersBindingKindSendEmail
| Settings.WorkersBindingKindService
| Settings.WorkersBindingKindTailConsumer
| Settings.WorkersBindingKindTextBlob
| Settings.WorkersBindingKindVectorize
| Settings.WorkersBindingKindVersionMetadata
| Settings.WorkersBindingKindSecretsStoreSecret
| Settings.WorkersBindingKindSecretKey
| Settings.WorkersBindingKindWorkflow
| Settings.WorkersBindingKindWasmModule
>;
/**
* 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>;
/**
* Limits to apply for this Worker.
*/
limits?: Settings.Limits;
/**
* Whether Logpush is turned on for the Worker.
*/
logpush?: boolean;
/**
* Migrations to apply for Durable Objects associated with this Worker.
*/
migrations?: WorkersAPI.SingleStepMigrationParam | Settings.WorkersMultipleStepMigrations;
/**
* Observability settings for the Worker.
*/
observability?: Settings.Observability;
/**
* Configuration for
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
*/
placement?: Settings.Placement;
/**
* Tags associated with the Worker.
*/
tags?: Array<string>;
/**
* List of Workers that will consume logs from the attached Worker.
*/
tail_consumers?: Array<TailAPI.ConsumerScriptParam>;
/**
* Usage model for the Worker invocations.
*/
usage_model?: 'standard' | 'bundled' | 'unbound';
}
export namespace Settings {
export interface WorkersBindingKindAI {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'ai';
}
export 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';
}
export interface WorkersBindingKindAssets {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'assets';
}
export interface WorkersBindingKindBrowser {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'browser';
}
export interface WorkersBindingKindD1 {
/**
* Identifier of the D1 database to bind to.
*/
id: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'd1';
}
export 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';
}
export interface WorkersBindingKindDispatchNamespace {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Namespace to bind to.
*/
namespace: string;
/**
* The kind of resource that the binding provides.
*/
type: 'dispatch_namespace';
/**
* Outbound worker.
*/
outbound?: WorkersBindingKindDispatchNamespace.Outbound;
}
export namespace WorkersBindingKindDispatchNamespace {
/**
* Outbound worker.
*/
export interface Outbound {
/**
* Pass information from the Dispatch Worker to the Outbound Worker through the
* parameters.
*/
params?: Array<string>;
/**
* Outbound worker.
*/
worker?: Outbound.Worker;
}
export namespace Outbound {
/**
* Outbound worker.
*/
export interface Worker {
/**
* Environment of the outbound worker.
*/
environment?: string;
/**
* Name of the outbound worker.
*/
service?: string;
}
}
}
export 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 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;
}
export 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';
}
export 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;
}
export interface WorkersBindingKindImages {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'images';
}
export interface WorkersBindingKindJson {
/**
* JSON data to use.
*/
json: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The kind of resource that the binding provides.
*/
type: 'json';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export 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';
}
export 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;
}
export 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';
/**
* Optional environment if the Worker utilizes one.
*/
environment?: string;
}
export interface WorkersBindingKindTailConsumer {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of Tail Worker to bind to.
*/
service: string;
/**
* The kind of resource that the binding provides.
*/
type: 'tail_consumer';
}
export 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';
}
export interface WorkersBindingKindVectorize {
/