## Upload Worker Module `workers.scripts.update(strscript_name, ScriptUpdateParams**kwargs) -> ScriptUpdateResponse` **put** `/accounts/{account_id}/workers/scripts/{script_name}` Upload a worker module. You can find more about the multipart metadata on our docs: https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/. ### Parameters - `account_id: str` Identifier. - `script_name: str` Name of the script, used in URLs and route configuration. - `metadata: Metadata` JSON-encoded metadata about the uploaded parts and Worker configuration. - `annotations: Optional[MetadataAnnotations]` Annotations for the version created by this upload. - `workers_message: Optional[str]` Human-readable message about the version. - `workers_tag: Optional[str]` User-provided identifier for the version. - `assets: Optional[MetadataAssets]` Configuration for assets within a Worker. - `config: Optional[MetadataAssetsConfig]` Configuration for assets within a Worker. - `_headers: Optional[str]` The contents of a _headers file (used to attach custom headers on asset responses). - `_redirects: Optional[str]` The contents of a _redirects file (used to apply redirects or proxy paths ahead of asset serving). - `html_handling: Optional[Literal["auto-trailing-slash", "force-trailing-slash", "drop-trailing-slash", "none"]]` Determines the redirects and rewrites of requests for HTML content. - `"auto-trailing-slash"` - `"force-trailing-slash"` - `"drop-trailing-slash"` - `"none"` - `not_found_handling: Optional[Literal["none", "404-page", "single-page-application"]]` Determines the response when a request does not match a static asset, and there is no Worker script. - `"none"` - `"404-page"` - `"single-page-application"` - `run_worker_first: Optional[Union[SequenceNotStr[str], bool]]` Contains a list path rules to control routing to either the Worker or assets. Glob (*) and negative (!) rules are supported. Rules must start with either '/' or '!/'. At least one non-negative rule must be provided, and negative rules have higher precedence than non-negative rules. - `SequenceNotStr[str]` Contains a list path rules to control routing to either the Worker or assets. Glob (*) and negative (!) rules are supported. Rules must start with either '/' or '!/'. At least one non-negative rule must be provided, and negative rules have higher precedence than non-negative rules. - `bool` Enables routing to always invoke the Worker script ahead of all requests. When true, this is equivalent to `["/*"]` in the string array version of this field. - `serve_directly: Optional[bool]` When true and the incoming request matches an asset, that will be served instead of invoking the Worker script. When false, requests will always invoke the Worker script. - `jwt: Optional[str]` Token provided upon successful upload of all files from a registered manifest. - `bindings: Optional[Iterable[MetadataBinding]]` 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. - `class MetadataBindingWorkersBindingKindAI: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["ai"]` The kind of resource that the binding provides. - `"ai"` - `class MetadataBindingWorkersBindingKindAISearch: …` - `instance_name: str` The user-chosen instance name. Must exist at deploy time. The worker can search, chat, update, and manage items/jobs on this instance. - `name: str` A JavaScript variable name for the binding. - `type: Literal["ai_search"]` The kind of resource that the binding provides. - `"ai_search"` - `namespace: Optional[str]` The namespace the instance belongs to. Defaults to "default" if omitted. Customers who don't use namespaces can simply omit this field. - `class MetadataBindingWorkersBindingKindAISearchNamespace: …` - `name: str` A JavaScript variable name for the binding. - `namespace: str` 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. - `type: Literal["ai_search_namespace"]` The kind of resource that the binding provides. - `"ai_search_namespace"` - `class MetadataBindingWorkersBindingKindAnalyticsEngine: …` - `dataset: str` The name of the dataset to bind to. - `name: str` A JavaScript variable name for the binding. - `type: Literal["analytics_engine"]` The kind of resource that the binding provides. - `"analytics_engine"` - `class MetadataBindingWorkersBindingKindAssets: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["assets"]` The kind of resource that the binding provides. - `"assets"` - `class MetadataBindingWorkersBindingKindBrowser: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["browser"]` The kind of resource that the binding provides. - `"browser"` - `class MetadataBindingWorkersBindingKindD1: …` - `id: str` Identifier of the D1 database to bind to. - `name: str` A JavaScript variable name for the binding. - `type: Literal["d1"]` The kind of resource that the binding provides. - `"d1"` - `class MetadataBindingWorkersBindingKindDataBlob: …` - `name: str` A JavaScript variable name for the binding. - `part: str` The name of the file containing the data content. Only accepted for `service worker syntax` Workers. - `type: Literal["data_blob"]` The kind of resource that the binding provides. - `"data_blob"` - `class MetadataBindingWorkersBindingKindDispatchNamespace: …` - `name: str` A JavaScript variable name for the binding. - `namespace: str` The name of the dispatch namespace. - `type: Literal["dispatch_namespace"]` The kind of resource that the binding provides. - `"dispatch_namespace"` - `outbound: Optional[MetadataBindingWorkersBindingKindDispatchNamespaceOutbound]` Outbound worker. - `params: Optional[Iterable[MetadataBindingWorkersBindingKindDispatchNamespaceOutboundParam]]` Pass information from the Dispatch Worker to the Outbound Worker through the parameters. - `name: str` Name of the parameter. - `worker: Optional[MetadataBindingWorkersBindingKindDispatchNamespaceOutboundWorker]` Outbound worker. - `entrypoint: Optional[str]` Entrypoint to invoke on the outbound worker. - `environment: Optional[str]` Environment of the outbound worker. - `service: Optional[str]` Name of the outbound worker. - `class MetadataBindingWorkersBindingKindDurableObjectNamespace: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["durable_object_namespace"]` The kind of resource that the binding provides. - `"durable_object_namespace"` - `class_name: Optional[str]` The exported class name of the Durable Object. - `dispatch_namespace: Optional[str]` The dispatch namespace the Durable Object script belongs to. - `environment: Optional[str]` The environment of the script_name to bind to. - `namespace_id: Optional[str]` Namespace identifier tag. - `script_name: Optional[str]` The script where the Durable Object is defined, if it is external to this Worker. - `class MetadataBindingWorkersBindingKindHyperdrive: …` - `id: str` Identifier of the Hyperdrive connection to bind to. - `name: str` A JavaScript variable name for the binding. - `type: Literal["hyperdrive"]` The kind of resource that the binding provides. - `"hyperdrive"` - `class MetadataBindingWorkersBindingKindInherit: …` - `name: str` The name of the inherited binding. - `type: Literal["inherit"]` The kind of resource that the binding provides. - `"inherit"` - `old_name: Optional[str]` 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. - `version_id: Optional[str]` 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. - `class MetadataBindingWorkersBindingKindImages: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["images"]` The kind of resource that the binding provides. - `"images"` - `class MetadataBindingWorkersBindingKindJson: …` - `json: object` JSON data to use. - `name: str` A JavaScript variable name for the binding. - `type: Literal["json"]` The kind of resource that the binding provides. - `"json"` - `class MetadataBindingWorkersBindingKindKVNamespace: …` - `name: str` A JavaScript variable name for the binding. - `namespace_id: str` Namespace identifier tag. - `type: Literal["kv_namespace"]` The kind of resource that the binding provides. - `"kv_namespace"` - `class MetadataBindingWorkersBindingKindMedia: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["media"]` The kind of resource that the binding provides. - `"media"` - `class MetadataBindingWorkersBindingKindMTLSCertificate: …` - `certificate_id: str` Identifier of the certificate to bind to. - `name: str` A JavaScript variable name for the binding. - `type: Literal["mtls_certificate"]` The kind of resource that the binding provides. - `"mtls_certificate"` - `class MetadataBindingWorkersBindingKindPlainText: …` - `name: str` A JavaScript variable name for the binding. - `text: str` The text value to use. - `type: Literal["plain_text"]` The kind of resource that the binding provides. - `"plain_text"` - `class MetadataBindingWorkersBindingKindPipelines: …` - `name: str` A JavaScript variable name for the binding. - `pipeline: str` Name of the Pipeline to bind to. - `type: Literal["pipelines"]` The kind of resource that the binding provides. - `"pipelines"` - `class MetadataBindingWorkersBindingKindQueue: …` - `name: str` A JavaScript variable name for the binding. - `queue_name: str` Name of the Queue to bind to. - `type: Literal["queue"]` The kind of resource that the binding provides. - `"queue"` - `class MetadataBindingWorkersBindingKindRatelimit: …` - `name: str` A JavaScript variable name for the binding. - `namespace_id: str` Identifier of the rate limit namespace to bind to. - `simple: MetadataBindingWorkersBindingKindRatelimitSimple` The rate limit configuration. - `limit: float` The limit (requests per period). - `period: int` The period in seconds. - `type: Literal["ratelimit"]` The kind of resource that the binding provides. - `"ratelimit"` - `class MetadataBindingWorkersBindingKindR2Bucket: …` - `bucket_name: str` R2 bucket to bind to. - `name: str` A JavaScript variable name for the binding. - `type: Literal["r2_bucket"]` The kind of resource that the binding provides. - `"r2_bucket"` - `jurisdiction: Optional[Literal["eu", "fedramp", "fedramp-high"]]` The [jurisdiction](https://developers.cloudflare.com/r2/reference/data-location/#jurisdictional-restrictions) of the R2 bucket. - `"eu"` - `"fedramp"` - `"fedramp-high"` - `class MetadataBindingWorkersBindingKindSecretText: …` - `name: str` A JavaScript variable name for the binding. - `text: str` The secret value to use. - `type: Literal["secret_text"]` The kind of resource that the binding provides. - `"secret_text"` - `class MetadataBindingWorkersBindingKindSendEmail: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["send_email"]` The kind of resource that the binding provides. - `"send_email"` - `allowed_destination_addresses: Optional[SequenceNotStr[str]]` List of allowed destination addresses. - `allowed_sender_addresses: Optional[SequenceNotStr[str]]` List of allowed sender addresses. - `destination_address: Optional[str]` Destination address for the email. - `class MetadataBindingWorkersBindingKindService: …` - `name: str` A JavaScript variable name for the binding. - `service: str` Name of Worker to bind to. - `type: Literal["service"]` The kind of resource that the binding provides. - `"service"` - `entrypoint: Optional[str]` Entrypoint to invoke on the target Worker. - `environment: Optional[str]` Optional environment if the Worker utilizes one. - `class MetadataBindingWorkersBindingKindTextBlob: …` - `name: str` A JavaScript variable name for the binding. - `part: str` The name of the file containing the text content. Only accepted for `service worker syntax` Workers. - `type: Literal["text_blob"]` The kind of resource that the binding provides. - `"text_blob"` - `class MetadataBindingWorkersBindingKindVectorize: …` - `index_name: str` Name of the Vectorize index to bind to. - `name: str` A JavaScript variable name for the binding. - `type: Literal["vectorize"]` The kind of resource that the binding provides. - `"vectorize"` - `class MetadataBindingWorkersBindingKindVersionMetadata: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["version_metadata"]` The kind of resource that the binding provides. - `"version_metadata"` - `class MetadataBindingWorkersBindingKindSecretsStoreSecret: …` - `name: str` A JavaScript variable name for the binding. - `secret_name: str` Name of the secret in the store. - `store_id: str` ID of the store containing the secret. - `type: Literal["secrets_store_secret"]` The kind of resource that the binding provides. - `"secrets_store_secret"` - `class MetadataBindingWorkersBindingKindSecretKey: …` - `algorithm: object` Algorithm-specific key parameters. [Learn more](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey#algorithm). - `format: Literal["raw", "pkcs8", "spki", "jwk"]` Data format of the key. [Learn more](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey#format). - `"raw"` - `"pkcs8"` - `"spki"` - `"jwk"` - `name: str` A JavaScript variable name for the binding. - `type: Literal["secret_key"]` The kind of resource that the binding provides. - `"secret_key"` - `usages: List[Literal["encrypt", "decrypt", "sign", 5 more]]` Allowed operations with the key. [Learn more](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey#keyUsages). - `"encrypt"` - `"decrypt"` - `"sign"` - `"verify"` - `"deriveKey"` - `"deriveBits"` - `"wrapKey"` - `"unwrapKey"` - `key_base64: Optional[str]` Base64-encoded key data. Required if `format` is "raw", "pkcs8", or "spki". - `key_jwk: Optional[object]` 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". - `class MetadataBindingWorkersBindingKindWorkflow: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["workflow"]` The kind of resource that the binding provides. - `"workflow"` - `workflow_name: str` Name of the Workflow to bind to. - `class_name: Optional[str]` Class name of the Workflow. Should only be provided if the Workflow belongs to this script. - `script_name: Optional[str]` Script name that contains the Workflow. If not provided, defaults to this script name. - `class MetadataBindingWorkersBindingKindWasmModule: …` - `name: str` A JavaScript variable name for the binding. - `part: str` The name of the file containing the WebAssembly module content. Only accepted for `service worker syntax` Workers. - `type: Literal["wasm_module"]` The kind of resource that the binding provides. - `"wasm_module"` - `class MetadataBindingWorkersBindingKindVPCService: …` - `name: str` A JavaScript variable name for the binding. - `service_id: str` Identifier of the VPC service to bind to. - `type: Literal["vpc_service"]` The kind of resource that the binding provides. - `"vpc_service"` - `class MetadataBindingWorkersBindingKindVPCNetwork: …` - `name: str` A JavaScript variable name for the binding. - `type: Literal["vpc_network"]` The kind of resource that the binding provides. - `"vpc_network"` - `network_id: Optional[str]` Identifier of the network to bind to. Only "cf1:network" is currently supported. Mutually exclusive with tunnel_id. - `tunnel_id: Optional[str]` UUID of the Cloudflare Tunnel to bind to. Mutually exclusive with network_id. - `body_part: Optional[str]` Name of the uploaded file that contains the script (e.g. the file adding a listener to the `fetch` event). Indicates a `service worker syntax` Worker. - `compatibility_date: Optional[str]` Date indicating targeted support in the Workers runtime. Backwards incompatible fixes to the runtime following this date will not affect this Worker. - `compatibility_flags: Optional[SequenceNotStr[str]]` 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`. - `keep_assets: Optional[bool]` Retain assets which exist for a previously uploaded Worker version; used in lieu of providing a completion token. - `keep_bindings: Optional[SequenceNotStr[str]]` List of binding types to keep from previous_upload. - `limits: Optional[MetadataLimits]` Limits to apply for this Worker. - `cpu_ms: Optional[int]` The amount of CPU time this Worker can use in milliseconds. - `logpush: Optional[bool]` Whether Logpush is turned on for the Worker. - `main_module: Optional[str]` Name of the uploaded file that contains the main module (e.g. the file exporting a `fetch` handler). Indicates a `module syntax` Worker. - `migrations: Optional[MetadataMigrations]` Migrations to apply for Durable Objects associated with this Worker. - `class SingleStepMigration: …` A single set of migrations to apply. - `deleted_classes: Optional[List[str]]` A list of classes to delete Durable Object namespaces from. - `new_classes: Optional[List[str]]` A list of classes to create Durable Object namespaces from. - `new_sqlite_classes: Optional[List[str]]` A list of classes to create Durable Object namespaces with SQLite from. - `new_tag: Optional[str]` Tag to set as the latest migration tag. - `old_tag: Optional[str]` Tag used to verify against the latest migration tag for this Worker. If they don't match, the upload is rejected. - `renamed_classes: Optional[List[RenamedClass]]` A list of classes with Durable Object namespaces that were renamed. - `from_: Optional[str]` - `to: Optional[str]` - `transferred_classes: Optional[List[TransferredClass]]` A list of transfers for Durable Object namespaces from a different Worker and class to a class defined in this Worker. - `from_: Optional[str]` - `from_script: Optional[str]` - `to: Optional[str]` - `class MetadataMigrationsWorkersMultipleStepMigrations: …` - `new_tag: Optional[str]` Tag to set as the latest migration tag. - `old_tag: Optional[str]` Tag used to verify against the latest migration tag for this Worker. If they don't match, the upload is rejected. - `steps: Optional[Iterable[MigrationStepParam]]` Migrations to apply in order. - `deleted_classes: Optional[List[str]]` A list of classes to delete Durable Object namespaces from. - `new_classes: Optional[List[str]]` A list of classes to create Durable Object namespaces from. - `new_sqlite_classes: Optional[List[str]]` A list of classes to create Durable Object namespaces with SQLite from. - `renamed_classes: Optional[List[RenamedClass]]` A list of classes with Durable Object namespaces that were renamed. - `from_: Optional[str]` - `to: Optional[str]` - `transferred_classes: Optional[List[TransferredClass]]` A list of transfers for Durable Object namespaces from a different Worker and class to a class defined in this Worker. - `from_: Optional[str]` - `from_script: Optional[str]` - `to: Optional[str]` - `observability: Optional[MetadataObservability]` Observability settings for the Worker. - `enabled: bool` Whether observability is enabled for the Worker. - `head_sampling_rate: Optional[float]` The sampling rate for incoming requests. From 0 to 1 (1 = 100%, 0.1 = 10%). Default is 1. - `logs: Optional[MetadataObservabilityLogs]` Log settings for the Worker. - `enabled: bool` Whether logs are enabled for the Worker. - `invocation_logs: bool` Whether [invocation logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/#invocation-logs) are enabled for the Worker. - `destinations: Optional[SequenceNotStr[str]]` A list of destinations where logs will be exported to. - `head_sampling_rate: Optional[float]` The sampling rate for logs. From 0 to 1 (1 = 100%, 0.1 = 10%). Default is 1. - `persist: Optional[bool]` Whether log persistence is enabled for the Worker. - `traces: Optional[MetadataObservabilityTraces]` Trace settings for the Worker. - `destinations: Optional[SequenceNotStr[str]]` A list of destinations where traces will be exported to. - `enabled: Optional[bool]` Whether traces are enabled for the Worker. - `head_sampling_rate: Optional[float]` The sampling rate for traces. From 0 to 1 (1 = 100%, 0.1 = 10%). Default is 1. - `persist: Optional[bool]` Whether trace persistence is enabled for the Worker. - `placement: Optional[MetadataPlacement]` Configuration for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). Specify mode='smart' for Smart Placement, or one of region/hostname/host. - `class MetadataPlacementUnionMember0: …` - `mode: Literal["smart"]` Enables [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"smart"` - `last_analyzed_at: Optional[Union[str, datetime]]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class MetadataPlacementUnionMember1: …` - `region: str` Cloud region for targeted placement in format 'provider:region'. - `last_analyzed_at: Optional[Union[str, datetime]]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class MetadataPlacementUnionMember2: …` - `hostname: str` HTTP hostname for targeted placement. - `last_analyzed_at: Optional[Union[str, datetime]]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class MetadataPlacementUnionMember3: …` - `host: str` TCP host and port for targeted placement. - `last_analyzed_at: Optional[Union[str, datetime]]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class MetadataPlacementUnionMember4: …` - `mode: Literal["targeted"]` Targeted placement mode. - `"targeted"` - `region: str` Cloud region for targeted placement in format 'provider:region'. - `last_analyzed_at: Optional[Union[str, datetime]]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class MetadataPlacementUnionMember5: …` - `hostname: str` HTTP hostname for targeted placement. - `mode: Literal["targeted"]` Targeted placement mode. - `"targeted"` - `last_analyzed_at: Optional[Union[str, datetime]]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class MetadataPlacementUnionMember6: …` - `host: str` TCP host and port for targeted placement. - `mode: Literal["targeted"]` Targeted placement mode. - `"targeted"` - `last_analyzed_at: Optional[Union[str, datetime]]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class MetadataPlacementUnionMember7: …` - `mode: Literal["targeted"]` Targeted placement mode. - `"targeted"` - `target: Iterable[MetadataPlacementUnionMember7Target]` Array of placement targets (currently limited to single target). - `class MetadataPlacementUnionMember7TargetRegion: …` - `region: str` Cloud region in format 'provider:region'. - `class MetadataPlacementUnionMember7TargetHostname: …` - `hostname: str` HTTP hostname for targeted placement. - `class MetadataPlacementUnionMember7TargetHost: …` - `host: str` TCP host:port for targeted placement. - `last_analyzed_at: Optional[Union[str, datetime]]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `tags: Optional[SequenceNotStr[str]]` List of strings to use as tags for this Worker. - `tail_consumers: Optional[Iterable[ConsumerScriptParam]]` List of Workers that will consume logs from the attached Worker. - `service: str` Name of Worker that is to be the consumer. - `environment: Optional[str]` Optional environment if the Worker utilizes one. - `namespace: Optional[str]` Optional dispatch namespace the script belongs to. - `usage_model: Optional[Literal["standard", "bundled", "unbound"]]` Usage model for the Worker invocations. - `"standard"` - `"bundled"` - `"unbound"` - `bindings_inherit: Optional[Literal["strict"]]` 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. - `"strict"` - `files: Optional[SequenceNotStr[FileTypes]]` 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.
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`. ### Returns - `class ScriptUpdateResponse: …` - `startup_time_ms: int` - `id: Optional[str]` The name used to identify the script. - `compatibility_date: Optional[str]` Date indicating targeted support in the Workers runtime. Backwards incompatible fixes to the runtime following this date will not affect this Worker. - `compatibility_flags: Optional[List[str]]` 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`. - `created_on: Optional[datetime]` When the script was created. - `entry_point: Optional[str]` The entry point for the script. - `etag: Optional[str]` Hashed script content, can be used in a If-None-Match header when updating. - `handlers: Optional[List[str]]` The names of handlers exported as part of the default export. - `has_assets: Optional[bool]` Whether a Worker contains assets. - `has_modules: Optional[bool]` Whether a Worker contains modules. - `last_deployed_from: Optional[str]` The client most recently used to deploy this Worker. - `logpush: Optional[bool]` Whether Logpush is turned on for the Worker. - `migration_tag: Optional[str]` The tag of the Durable Object migration that was most recently applied for this Worker. - `modified_on: Optional[datetime]` When the script was last modified. - `named_handlers: Optional[List[NamedHandler]]` Named exports, such as Durable Object class implementations and named entrypoints. - `handlers: Optional[List[str]]` The names of handlers exported as part of the named export. - `name: Optional[str]` The name of the export. - `observability: Optional[Observability]` Observability settings for the Worker. - `enabled: bool` Whether observability is enabled for the Worker. - `head_sampling_rate: Optional[float]` The sampling rate for incoming requests. From 0 to 1 (1 = 100%, 0.1 = 10%). Default is 1. - `logs: Optional[ObservabilityLogs]` Log settings for the Worker. - `enabled: bool` Whether logs are enabled for the Worker. - `invocation_logs: bool` Whether [invocation logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/#invocation-logs) are enabled for the Worker. - `destinations: Optional[List[str]]` A list of destinations where logs will be exported to. - `head_sampling_rate: Optional[float]` The sampling rate for logs. From 0 to 1 (1 = 100%, 0.1 = 10%). Default is 1. - `persist: Optional[bool]` Whether log persistence is enabled for the Worker. - `traces: Optional[ObservabilityTraces]` Trace settings for the Worker. - `destinations: Optional[List[str]]` A list of destinations where traces will be exported to. - `enabled: Optional[bool]` Whether traces are enabled for the Worker. - `head_sampling_rate: Optional[float]` The sampling rate for traces. From 0 to 1 (1 = 100%, 0.1 = 10%). Default is 1. - `persist: Optional[bool]` Whether trace persistence is enabled for the Worker. - `placement: Optional[Placement]` Configuration for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). Specify mode='smart' for Smart Placement, or one of region/hostname/host. - `class PlacementUnionMember0: …` - `mode: Literal["smart"]` Enables [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"smart"` - `last_analyzed_at: Optional[datetime]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class PlacementUnionMember1: …` - `region: str` Cloud region for targeted placement in format 'provider:region'. - `last_analyzed_at: Optional[datetime]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class PlacementUnionMember2: …` - `hostname: str` HTTP hostname for targeted placement. - `last_analyzed_at: Optional[datetime]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class PlacementUnionMember3: …` - `host: str` TCP host and port for targeted placement. - `last_analyzed_at: Optional[datetime]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class PlacementUnionMember4: …` - `mode: Literal["targeted"]` Targeted placement mode. - `"targeted"` - `region: str` Cloud region for targeted placement in format 'provider:region'. - `last_analyzed_at: Optional[datetime]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class PlacementUnionMember5: …` - `hostname: str` HTTP hostname for targeted placement. - `mode: Literal["targeted"]` Targeted placement mode. - `"targeted"` - `last_analyzed_at: Optional[datetime]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class PlacementUnionMember6: …` - `host: str` TCP host and port for targeted placement. - `mode: Literal["targeted"]` Targeted placement mode. - `"targeted"` - `last_analyzed_at: Optional[datetime]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `class PlacementUnionMember7: …` - `mode: Literal["targeted"]` Targeted placement mode. - `"targeted"` - `target: List[PlacementUnionMember7Target]` Array of placement targets (currently limited to single target). - `class PlacementUnionMember7TargetRegion: …` - `region: str` Cloud region in format 'provider:region'. - `class PlacementUnionMember7TargetHostname: …` - `hostname: str` HTTP hostname for targeted placement. - `class PlacementUnionMember7TargetHost: …` - `host: str` TCP host:port for targeted placement. - `last_analyzed_at: Optional[datetime]` The last time the script was analyzed for [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` Status of [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `placement_mode: Optional[Literal["smart", "targeted"]]` - `"smart"` - `"targeted"` - `placement_status: Optional[Literal["SUCCESS", "UNSUPPORTED_APPLICATION", "INSUFFICIENT_INVOCATIONS"]]` - `"SUCCESS"` - `"UNSUPPORTED_APPLICATION"` - `"INSUFFICIENT_INVOCATIONS"` - `tag: Optional[str]` The immutable ID of the script. - `tags: Optional[List[str]]` Tags associated with the Worker. - `tail_consumers: Optional[List[ConsumerScript]]` List of Workers that will consume logs from the attached Worker. - `service: str` Name of Worker that is to be the consumer. - `environment: Optional[str]` Optional environment if the Worker utilizes one. - `namespace: Optional[str]` Optional dispatch namespace the script belongs to. - `usage_model: Optional[Literal["standard", "bundled", "unbound"]]` Usage model for the Worker invocations. - `"standard"` - `"bundled"` - `"unbound"` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) script = client.workers.scripts.update( script_name="this-is_my_script-01", account_id="023e105f4ecef8ad9ca31a8372d0c353", metadata={}, ) print(script.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": { "startup_time_ms": 10, "id": "this-is_my_script-01", "compatibility_date": "2021-01-01", "compatibility_flags": [ "nodejs_compat" ], "created_on": "2022-05-05T05:15:11.602148Z", "entry_point": "index.js", "etag": "777f24a43bef5f69174aa69ceaf1dea67968d510a31d1vw3e49d34a0187c06d1", "handlers": [ "fetch" ], "has_assets": false, "has_modules": false, "last_deployed_from": "wrangler", "logpush": false, "migration_tag": "v1", "modified_on": "2022-05-20T19:02:56.446492Z", "named_handlers": [ { "handlers": [ "class" ], "name": "MyDurableObject" } ], "observability": { "enabled": true, "head_sampling_rate": 0.1, "logs": { "enabled": true, "invocation_logs": true, "destinations": [ "cloudflare" ], "head_sampling_rate": 0.1, "persist": true }, "traces": { "destinations": [ "cloudflare" ], "enabled": true, "head_sampling_rate": 0.1, "persist": true } }, "placement": { "mode": "smart", "last_analyzed_at": "2025-01-01T00:00:00Z", "status": "SUCCESS" }, "placement_mode": "smart", "placement_status": "SUCCESS", "tag": "e8f70fdbc8b1fb0b8ddb1af166186758", "tags": [ "my-team", "my-public-api" ], "tail_consumers": [ { "service": "my-log-consumer", "environment": "production", "namespace": "my-namespace" } ], "usage_model": "standard" }, "success": true } ```