cloudflare
Version:
The official TypeScript library for the Cloudflare API
1,239 lines (1,023 loc) • 27.7 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import * as Core from "../../../core";
import { APIResource } from "../../../resource";
import * as SettingsAPI from "./settings";
import { multipartFormRequestOptions } from "../../../core";
export class Settings extends APIResource {
/**
* Patch script metadata or config, such as bindings or usage model
*/
edit(
scriptName: string,
params: SettingEditParams,
options?: Core.RequestOptions,
): Core.APIPromise<SettingEditResponse> {
const { account_id, ...body } = params;
return (
this._client.patch(
`/accounts/${account_id}/workers/scripts/${scriptName}/settings`,
multipartFormRequestOptions({ body, ...options }),
) as Core.APIPromise<{ result: SettingEditResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Get script metadata and config, such as bindings or usage model
*/
get(
scriptName: string,
params: SettingGetParams,
options?: Core.RequestOptions,
): Core.APIPromise<SettingGetResponse> {
const { account_id } = params;
return (
this._client.get(
`/accounts/${account_id}/workers/scripts/${scriptName}/settings`,
options,
) as Core.APIPromise<{ result: SettingGetResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export interface SettingEditResponse {
/**
* List of bindings attached to this Worker
*/
bindings?: Array<
| SettingEditResponse.WorkersKVNamespaceBinding
| SettingEditResponse.WorkersServiceBinding
| SettingEditResponse.WorkersDoBinding
| SettingEditResponse.WorkersR2Binding
| SettingEditResponse.WorkersQueueBinding
| SettingEditResponse.WorkersD1Binding
| SettingEditResponse.WorkersDispatchNamespaceBinding
| SettingEditResponse.WorkersMTLSCERTBinding
>;
/**
* Opt your Worker into changes after this date
*/
compatibility_date?: string;
/**
* Opt your Worker into specific changes
*/
compatibility_flags?: Array<string>;
/**
* Whether Logpush is turned on for the Worker.
*/
logpush?: boolean;
/**
* Migrations to apply for Durable Objects associated with this Worker.
*/
migrations?: SettingEditResponse.WorkersSingleStepMigrations | SettingEditResponse.WorkersSteppedMigrations;
placement?: SettingEditResponse.Placement;
/**
* Tags to help you manage your Workers
*/
tags?: Array<string>;
/**
* List of Workers that will consume logs from the attached Worker.
*/
tail_consumers?: Array<SettingEditResponse.TailConsumer>;
/**
* Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound').
*/
usage_model?: string;
}
export namespace SettingEditResponse {
export interface WorkersKVNamespaceBinding {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Namespace identifier tag.
*/
namespace_id: string;
/**
* The class of resource that the binding provides.
*/
type: 'kv_namespace';
}
export interface WorkersServiceBinding {
/**
* Optional environment if the Worker utilizes one.
*/
environment: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of Worker to bind to
*/
service: string;
/**
* The class of resource that the binding provides.
*/
type: 'service';
}
export interface WorkersDoBinding {
/**
* The exported class name of the Durable Object
*/
class_name: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The class of resource that the binding provides.
*/
type: 'durable_object_namespace';
/**
* 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 WorkersR2Binding {
/**
* R2 bucket to bind to
*/
bucket_name: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The class of resource that the binding provides.
*/
type: 'r2_bucket';
}
export interface WorkersQueueBinding {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of the Queue to bind to
*/
queue_name: string;
/**
* The class of resource that the binding provides.
*/
type: 'queue';
}
export interface WorkersD1Binding {
/**
* ID of the D1 database to bind to
*/
id: string;
/**
* A JavaScript variable name for the binding.
*/
binding: string;
/**
* The name of the D1 database associated with the 'id' provided.
*/
name: string;
/**
* The class of resource that the binding provides.
*/
type: 'd1';
}
export interface WorkersDispatchNamespaceBinding {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Namespace to bind to
*/
namespace: string;
/**
* The class of resource that the binding provides.
*/
type: 'dispatch_namespace';
/**
* Outbound worker
*/
outbound?: WorkersDispatchNamespaceBinding.Outbound;
}
export namespace WorkersDispatchNamespaceBinding {
/**
* 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 WorkersMTLSCERTBinding {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The class of resource that the binding provides.
*/
type: 'mtls_certificate';
/**
* ID of the certificate to bind to
*/
certificate_id?: string;
}
/**
* A single set of migrations to apply.
*/
export interface WorkersSingleStepMigrations {
/**
* A list of classes to delete Durable Object namespaces from.
*/
deleted_classes?: Array<string>;
/**
* A list of classes to create Durable Object namespaces from.
*/
new_classes?: Array<string>;
/**
* Tag to set as the latest migration tag.
*/
new_tag?: string;
/**
* Tag used to verify against the latest migration tag for this Worker. If they
* don't match, the upload is rejected.
*/
old_tag?: string;
/**
* A list of classes with Durable Object namespaces that were renamed.
*/
renamed_classes?: Array<WorkersSingleStepMigrations.RenamedClass>;
/**
* A list of transfers for Durable Object namespaces from a different Worker and
* class to a class defined in this Worker.
*/
transferred_classes?: Array<WorkersSingleStepMigrations.TransferredClass>;
}
export namespace WorkersSingleStepMigrations {
export interface RenamedClass {
from?: string;
to?: string;
}
export interface TransferredClass {
from?: string;
from_script?: string;
to?: string;
}
}
export interface WorkersSteppedMigrations {
/**
* Tag to set as the latest migration tag.
*/
new_tag?: string;
/**
* Tag used to verify against the latest migration tag for this Worker. If they
* don't match, the upload is rejected.
*/
old_tag?: string;
/**
* Migrations to apply in order.
*/
steps?: Array<WorkersSteppedMigrations.Step>;
}
export namespace WorkersSteppedMigrations {
export interface Step {
/**
* A list of classes to delete Durable Object namespaces from.
*/
deleted_classes?: Array<string>;
/**
* A list of classes to create Durable Object namespaces from.
*/
new_classes?: Array<string>;
/**
* A list of classes with Durable Object namespaces that were renamed.
*/
renamed_classes?: Array<Step.RenamedClass>;
/**
* A list of transfers for Durable Object namespaces from a different Worker and
* class to a class defined in this Worker.
*/
transferred_classes?: Array<Step.TransferredClass>;
}
export namespace Step {
export interface RenamedClass {
from?: string;
to?: string;
}
export interface TransferredClass {
from?: string;
from_script?: string;
to?: string;
}
}
}
export interface Placement {
/**
* Enables
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
* Only `"smart"` is currently supported
*/
mode?: 'smart';
}
/**
* A reference to a script that will consume logs from the attached Worker.
*/
export interface TailConsumer {
/**
* Name of Worker that is to be the consumer.
*/
service: string;
/**
* Optional environment if the Worker utilizes one.
*/
environment?: string;
/**
* Optional dispatch namespace the script belongs to.
*/
namespace?: string;
}
}
export interface SettingGetResponse {
/**
* List of bindings attached to this Worker
*/
bindings?: Array<
| SettingGetResponse.WorkersKVNamespaceBinding
| SettingGetResponse.WorkersServiceBinding
| SettingGetResponse.WorkersDoBinding
| SettingGetResponse.WorkersR2Binding
| SettingGetResponse.WorkersQueueBinding
| SettingGetResponse.WorkersD1Binding
| SettingGetResponse.WorkersDispatchNamespaceBinding
| SettingGetResponse.WorkersMTLSCERTBinding
>;
/**
* Opt your Worker into changes after this date
*/
compatibility_date?: string;
/**
* Opt your Worker into specific changes
*/
compatibility_flags?: Array<string>;
/**
* Whether Logpush is turned on for the Worker.
*/
logpush?: boolean;
/**
* Migrations to apply for Durable Objects associated with this Worker.
*/
migrations?: SettingGetResponse.WorkersSingleStepMigrations | SettingGetResponse.WorkersSteppedMigrations;
placement?: SettingGetResponse.Placement;
/**
* Tags to help you manage your Workers
*/
tags?: Array<string>;
/**
* List of Workers that will consume logs from the attached Worker.
*/
tail_consumers?: Array<SettingGetResponse.TailConsumer>;
/**
* Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound').
*/
usage_model?: string;
}
export namespace SettingGetResponse {
export interface WorkersKVNamespaceBinding {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Namespace identifier tag.
*/
namespace_id: string;
/**
* The class of resource that the binding provides.
*/
type: 'kv_namespace';
}
export interface WorkersServiceBinding {
/**
* Optional environment if the Worker utilizes one.
*/
environment: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of Worker to bind to
*/
service: string;
/**
* The class of resource that the binding provides.
*/
type: 'service';
}
export interface WorkersDoBinding {
/**
* The exported class name of the Durable Object
*/
class_name: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The class of resource that the binding provides.
*/
type: 'durable_object_namespace';
/**
* 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 WorkersR2Binding {
/**
* R2 bucket to bind to
*/
bucket_name: string;
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The class of resource that the binding provides.
*/
type: 'r2_bucket';
}
export interface WorkersQueueBinding {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Name of the Queue to bind to
*/
queue_name: string;
/**
* The class of resource that the binding provides.
*/
type: 'queue';
}
export interface WorkersD1Binding {
/**
* ID of the D1 database to bind to
*/
id: string;
/**
* A JavaScript variable name for the binding.
*/
binding: string;
/**
* The name of the D1 database associated with the 'id' provided.
*/
name: string;
/**
* The class of resource that the binding provides.
*/
type: 'd1';
}
export interface WorkersDispatchNamespaceBinding {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* Namespace to bind to
*/
namespace: string;
/**
* The class of resource that the binding provides.
*/
type: 'dispatch_namespace';
/**
* Outbound worker
*/
outbound?: WorkersDispatchNamespaceBinding.Outbound;
}
export namespace WorkersDispatchNamespaceBinding {
/**
* 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 WorkersMTLSCERTBinding {
/**
* A JavaScript variable name for the binding.
*/
name: string;
/**
* The class of resource that the binding provides.
*/
type: 'mtls_certificate';
/**
* ID of the certificate to bind to
*/
certificate_id?: string;
}
/**
* A single set of migrations to apply.
*/
export interface WorkersSingleStepMigrations {
/**
* A list of classes to delete Durable Object namespaces from.
*/
deleted_classes?: Array<string>;
/**
* A list of classes to create Durable Object namespaces from.
*/
new_classes?: Array<string>;
/**
* Tag to set as the latest migration tag.
*/
new_tag?: string;
/**
* Tag used to verify against the latest migration tag for this Worker. If they
* don't match, the upload is rejected.
*/
old_tag?: string;
/**
* A list of classes with Durable Object namespaces that were renamed.
*/
renamed_classes?: Array<WorkersSingleStepMigrations.RenamedClass>;
/**
* A list of transfers for Durable Object namespaces from a different Worker and
* class to a class defined in this Worker.
*/
transferred_classes?: Array<WorkersSingleStepMigrations.TransferredClass>;
}
export namespace WorkersSingleStepMigrations {
export interface RenamedClass {
from?: string;
to?: string;
}
export interface TransferredClass {
from?: string;
from_script?: string;
to?: string;
}
}
export interface WorkersSteppedMigrations {
/**
* Tag to set as the latest migration tag.
*/
new_tag?: string;
/**
* Tag used to verify against the latest migration tag for this Worker. If they
* don't match, the upload is rejected.
*/
old_tag?: string;
/**
* Migrations to apply in order.
*/
steps?: Array<WorkersSteppedMigrations.Step>;
}
export namespace WorkersSteppedMigrations {
export interface Step {
/**
* A list of classes to delete Durable Object namespaces from.
*/
deleted_classes?: Array<string>;
/**
* A list of classes to create Durable Object namespaces from.
*/
new_classes?: Array<string>;
/**
* A list of classes with Durable Object namespaces that were renamed.
*/
renamed_classes?: Array<Step.RenamedClass>;
/**
* A list of transfers for Durable Object namespaces from a different Worker and
* class to a class defined in this Worker.
*/
transferred_classes?: Array<Step.TransferredClass>;
}
export namespace Step {
export interface RenamedClass {
from?: string;
to?: string;
}
export interface TransferredClass {
from?: string;
from_script?: string;
to?: string;
}
}
}
export interface Placement {
/**
* Enables
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
* Only `"smart"` is currently supported
*/
mode?: 'smart';
}
/**
* A reference to a script that will consume logs from the attached Worker.
*/
export interface TailConsumer {
/**
* Name of Worker that is to be the consumer.
*/
service: string;
/**
* Optional environment if the Worker utilizes one.
*/
environment?: string;
/**
* Optional dispatch namespace the script belongs to.
*/
namespace?: string;
}
}
export interface SettingEditParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param:
*/
settings?: SettingEditParams.Settings;
}
export namespace SettingEditParams {
export interface Settings {
errors: Array<Settings.Error>;
messages: Array<Settings.Message>;
result: Settings.Result;
/**
* Whether the API call was successful
*/
success: true;
}
export namespace Settings {
export interface Error {
code: number;
message: string;
}
export interface Message {
code: number;
message: string;
}
export interface Result {
/**
* List of bindings attached to this Worker
*/
bindings?: Array<
| Result.WorkersKVNamespaceBinding
| Result.WorkersServiceBinding
| Result.WorkersDoBinding
| Result.WorkersR2Binding
| Result.WorkersQueueBinding
| Result.WorkersD1Binding
| Result.WorkersDispatchNamespaceBinding
| Result.WorkersMTLSCERTBinding
>;
/**
* Opt your Worker into changes after this date
*/
compatibility_date?: string;
/**
* Opt your Worker into specific changes
*/
compatibility_flags?: Array<string>;
/**
* Whether Logpush is turned on for the Worker.
*/
logpush?: boolean;
/**
* Migrations to apply for Durable Objects associated with this Worker.
*/
migrations?: Result.WorkersSingleStepMigrations | Result.WorkersSteppedMigrations;
placement?: Result.Placement;
/**
* Tags to help you manage your Workers
*/
tags?: Array<string>;
/**
* List of Workers that will consume logs from the attached Worker.
*/
tail_consumers?: Array<Result.TailConsumer>;
/**
* Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound').
*/
usage_model?: string;
}
export namespace Result {
export interface WorkersKVNamespaceBinding {
/**
* The class of resource that the binding provides.
*/
type: 'kv_namespace';
}
export interface WorkersServiceBinding {
/**
* Optional environment if the Worker utilizes one.
*/
environment: string;
/**
* Name of Worker to bind to
*/
service: string;
/**
* The class of resource that the binding provides.
*/
type: 'service';
}
export interface WorkersDoBinding {
/**
* The exported class name of the Durable Object
*/
class_name: string;
/**
* The class of resource that the binding provides.
*/
type: 'durable_object_namespace';
/**
* The environment of the script_name to bind to
*/
environment?: string;
/**
* The script where the Durable Object is defined, if it is external to this Worker
*/
script_name?: string;
}
export interface WorkersR2Binding {
/**
* R2 bucket to bind to
*/
bucket_name: string;
/**
* The class of resource that the binding provides.
*/
type: 'r2_bucket';
}
export interface WorkersQueueBinding {
/**
* Name of the Queue to bind to
*/
queue_name: string;
/**
* The class of resource that the binding provides.
*/
type: 'queue';
}
export interface WorkersD1Binding {
/**
* ID of the D1 database to bind to
*/
id: string;
/**
* The name of the D1 database associated with the 'id' provided.
*/
name: string;
/**
* The class of resource that the binding provides.
*/
type: 'd1';
}
export interface WorkersDispatchNamespaceBinding {
/**
* Namespace to bind to
*/
namespace: string;
/**
* The class of resource that the binding provides.
*/
type: 'dispatch_namespace';
/**
* Outbound worker
*/
outbound?: WorkersDispatchNamespaceBinding.Outbound;
}
export namespace WorkersDispatchNamespaceBinding {
/**
* 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 WorkersMTLSCERTBinding {
/**
* The class of resource that the binding provides.
*/
type: 'mtls_certificate';
/**
* ID of the certificate to bind to
*/
certificate_id?: string;
}
/**
* A single set of migrations to apply.
*/
export interface WorkersSingleStepMigrations {
/**
* A list of classes to delete Durable Object namespaces from.
*/
deleted_classes?: Array<string>;
/**
* A list of classes to create Durable Object namespaces from.
*/
new_classes?: Array<string>;
/**
* Tag to set as the latest migration tag.
*/
new_tag?: string;
/**
* Tag used to verify against the latest migration tag for this Worker. If they
* don't match, the upload is rejected.
*/
old_tag?: string;
/**
* A list of classes with Durable Object namespaces that were renamed.
*/
renamed_classes?: Array<WorkersSingleStepMigrations.RenamedClass>;
/**
* A list of transfers for Durable Object namespaces from a different Worker and
* class to a class defined in this Worker.
*/
transferred_classes?: Array<WorkersSingleStepMigrations.TransferredClass>;
}
export namespace WorkersSingleStepMigrations {
export interface RenamedClass {
from?: string;
to?: string;
}
export interface TransferredClass {
from?: string;
from_script?: string;
to?: string;
}
}
export interface WorkersSteppedMigrations {
/**
* Tag to set as the latest migration tag.
*/
new_tag?: string;
/**
* Tag used to verify against the latest migration tag for this Worker. If they
* don't match, the upload is rejected.
*/
old_tag?: string;
/**
* Migrations to apply in order.
*/
steps?: Array<WorkersSteppedMigrations.Step>;
}
export namespace WorkersSteppedMigrations {
export interface Step {
/**
* A list of classes to delete Durable Object namespaces from.
*/
deleted_classes?: Array<string>;
/**
* A list of classes to create Durable Object namespaces from.
*/
new_classes?: Array<string>;
/**
* A list of classes with Durable Object namespaces that were renamed.
*/
renamed_classes?: Array<Step.RenamedClass>;
/**
* A list of transfers for Durable Object namespaces from a different Worker and
* class to a class defined in this Worker.
*/
transferred_classes?: Array<Step.TransferredClass>;
}
export namespace Step {
export interface RenamedClass {
from?: string;
to?: string;
}
export interface TransferredClass {
from?: string;
from_script?: string;
to?: string;
}
}
}
export interface Placement {
/**
* Enables
* [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement).
* Only `"smart"` is currently supported
*/
mode?: 'smart';
}
/**
* A reference to a script that will consume logs from the attached Worker.
*/
export interface TailConsumer {
/**
* Name of Worker that is to be the consumer.
*/
service: string;
/**
* Optional environment if the Worker utilizes one.
*/
environment?: string;
/**
* Optional dispatch namespace the script belongs to.
*/
namespace?: string;
}
}
}
}
export interface SettingGetParams {
/**
* Identifier
*/
account_id: string;
}
export namespace Settings {
export import SettingEditResponse = SettingsAPI.SettingEditResponse;
export import SettingGetResponse = SettingsAPI.SettingGetResponse;
export import SettingEditParams = SettingsAPI.SettingEditParams;
export import SettingGetParams = SettingsAPI.SettingGetParams;
}