Skip to content
Start here

Modify an application

containers.applications.edit(strapplication_id, ApplicationEditParams**kwargs) -> ApplicationEditResponse
PATCH/accounts/{account_id}/containers/applications/{application_id}

Modifies a single application by id. Durable Object-managed application settings are published to runtime metadata without creating deployments or rollouts. Top-level observability for these applications supports only logs.enabled. The supported fields depend on the existing application’s scheduling policy. For scheduler-backed applications, changes that replace instance deployment configuration, including the image, require a rollout.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Workers Containers Write
ParametersExpand Collapse
account_id: str
application_id: str

An Application ID represents an identifier of an application.

configuration: Optional[Configuration]

Application configuration fields you can change without creating a rollout.

authorized_keys: Optional[Iterable[ConfigurationAuthorizedKey]]
public_key: str

An SSH public key.

name: Optional[str]

Optional human readable name for this key.

wrangler_ssh: Optional[ConfigurationWranglerSSH]

Configuration properties for connecting with SSH to a container using Wrangler.

enabled: Optional[bool]
port: Optional[int]
maximum65535
minimum1
constraints: Optional[Constraints]
jurisdiction: Optional[str]

Restricts placement to datacenters in the selected jurisdiction. Choose “eu”, “fedramp”, or “us”. When combined with regions, EU supports EEUR and WEUR while FedRAMP and US support ENAM and WNAM.

regions: Optional[Sequence[str]]
max_instances: Optional[int]

Maximum number of instances that an autoscaling application can run.

minimum0
observability: Optional[Observability]

Top-level application observability settings. Scheduler-backed applications hot-reload these settings across existing instances. An existing Durable Object-managed application accepts only logs.enabled and publishes these settings to runtime metadata without creating deployments or rollouts.

logs: Optional[ObservabilityLogs]

Observability logging settings.

enabled: Optional[bool]
rollout_active_grace_period: Optional[int]

Grace period for active instances to stay alive before becoming eligible for shutdown signal due to a rollout, in seconds. Defaults to 0.

maximum604800
minimum0
ReturnsExpand Collapse

The public Containers API returns an application.

One of the following:
class CcScheduledApplication: …

Describes an application and the parameters that govern how it places its instances.

id: str

An Application ID represents an identifier of an application.

account_id: str

A unique identifier for the user’s account.

configuration: CcScheduledApplicationConfiguration

User-specified container configuration.

image: str

Image url.

authorized_keys: Optional[List[CcScheduledApplicationConfigurationAuthorizedKey]]
public_key: str

An SSH public key.

name: Optional[str]

Optional human readable name for this key.

command: Optional[List[str]]

The command that runs when the container starts, passed to the entrypoint. You can override this at run-time. If you override only the command, it gets passed to the default entrypoint specified in the image.

entrypoint: Optional[List[str]]

The entry point for the container, specifying the executable to run when the container starts. You can override this at run-time. If you do, the default command from the image is ignored. Specify both entrypoint and command at run-time to completely replace the image defaults.

environment_variables: Optional[List[CcScheduledApplicationConfigurationEnvironmentVariable]]

Container environment variables.

name: str

An environment variable name.

value: str

An environment variable value.

instance_type: Optional[Literal["lite", "basic", "standard-1", 3 more]]

The instance type configures vCPU, memory, and disk.

  • “lite”: 1/16 vCPU, 256 MiB memory, 2 GB disk
  • “basic”: 1/4 vCPU, 1 GiB memory, 4 GB disk
  • “standard-1”: 1/2 vCPU, 4 GiB memory, 8 GB disk
  • “standard-2”: 1 vCPU, 6 GiB memory, 12 GB disk
  • “standard-3”: 2 vCPU, 8 GiB memory, 16 GB disk
  • “standard-4”: 4 vCPU, 12 GiB memory, 20 GB disk
One of the following:
"lite"
"basic"
"standard-1"
"standard-2"
"standard-3"
"standard-4"
observability: Optional[CcScheduledApplicationConfigurationObservability]

Settings for deployment observability such as logging.

logs: Optional[CcScheduledApplicationConfigurationObservabilityLogs]

Observability logging settings.

enabled: Optional[bool]
created_at: str

UTC timestamp string in ISO 8601 format.

instances: int

Number of deployments to create.

name: str

The application name.

scheduling_policy: Literal["default", "durable_object"]

The scheduling policy to use for an application.

One of the following:
"default"
"durable_object"
updated_at: str

UTC timestamp string in ISO 8601 format.

version: int
active_rollout_id: Optional[str]

An identifier for a specific rollout within an application.

constraints: Optional[CcScheduledApplicationConstraints]
jurisdiction: Optional[str]

Restricts placement to datacenters in the selected jurisdiction. Choose “eu”, “fedramp”, or “us”. When combined with regions, EU supports EEUR and WEUR while FedRAMP and US support ENAM and WNAM.

regions: Optional[List[str]]
durable_objects: Optional[CcScheduledApplicationDurableObjects]

Durable object configuration stored on and returned from a Cloudchamber application.

namespace_id: str

The namespace ID of the durable object namespace to use for this application.

health: Optional[CcScheduledApplicationHealth]
errors: List[CcScheduledApplicationHealthError]
event: CcScheduledApplicationHealthErrorEvent

An event within a Placement or a Job.

id: str
details: Dict[str, object]
message: str
name: Literal["SchedulerPlaced", "NetworkingIPAssigned", "VMStarted", 14 more]

Name of the event that describes the kind event that happened.

  • SchedulerPlaced: It’s the first event that creates a container placement. It happens when the Containers runtime was able to retrieve deployment resources and start verifying everything is correct.
  • NetworkingIPAssigned: It’s sent when the Containers runtime maps the IP to the container.
  • VMStarted: It’s sent when the Containers runtime starts the VM. The container might remain unhealthy at this point.
  • ImagePulled: It’s sent when the Containers runtime pulls the image successfully.
  • ImagePullError: It’s sent when the Containers runtime is having issues pulling the image. The message and details have more information on what happened for debugging.
  • VMFailedToStart: It’s sent when the Containers runtime was unable to boot the VM.
  • VMStopping: It’s sent when the scheduler is stopping the VM.
  • VMStopped: It’s sent when the VM finally exits.
  • VMFailed: It’s sent when the scheduling of the VM failed in the current location.
  • RuntimeStartFailed: It’s sent when the runtime hits an internal error.
  • SSHStarted: It’s sent when the container gains network connectivity and opens the SSH port. Containers only send this event when SSH keys exist.
  • CheckUpdate: Sent when the status of a health or readiness check changes. This may also affect the health status of the placement.
  • DurableObjectConnected: Sent when a durable object instance connects and gains control of the deployment. This event is only sent for durable object deployments. It is sent after VMStarted.
  • ContainerStarted: It’s sent when the container starts running.
One of the following:
"SchedulerPlaced"
"NetworkingIPAssigned"
"VMStarted"
"ImagePulled"
"ImagePullError"
"VMFailedToStart"
"NetworkingIPAssignmentFailed"
"VMRunning"
"VMStopping"
"VMStopped"
"VMFailed"
"RuntimeStartFailed"
"SSHStarted"
"ServiceHealthUpdates"
"CheckUpdate"
"DurableObjectConnected"
"ContainerStarted"
status_change: Dict[str, object]
time: str

UTC timestamp string in ISO 8601 format.

type: Literal["Info", "Error", "Warn", 2 more]
One of the following:
"Info"
"Error"
"Warn"
"UserError"
"SystemError"
instance_id: str

An instance ID represents an identifier of an instance configuration that maintains an underlying placement.

instances: CcScheduledApplicationHealthInstances

Shows a count of application instance states.

active: int

Number of instances whose runtime reports the container as running (container_status = “running”). This is a subset of the placements that remain up: an instance that is already bound to a Durable Object and serving traffic is counted under “assigned” until its container_status catches up to “running”, so container_status can briefly lag Durable Object attachment under churn. To estimate running, Durable-Object-bound instances, sum “active” + “assigned” rather than reading “active” alone.

assigned: int

Number of instances bound to a Durable Object with a running placement whose container_status remains behind “running”. These count as live, serving instances; “active” + “assigned” approximates the running, Durable-Object-bound count.

summary: Optional[Literal["healthy", "degraded", "unhealthy", "pending"]]

High-level health assessment. Only populated for “new_instances” strategy. Based on a sample of target-version instances rather than a full count.

  • “pending”: Zero target-version instances exist yet.
  • “healthy”: Every sampled target-version instance reports running or active.
  • “degraded”: Some sampled instances remain starting or scheduling.
  • “unhealthy”: One or more sampled instances have failed.
One of the following:
"healthy"
"degraded"
"unhealthy"
"pending"
max_instances: Optional[int]

Maximum number of instances the application allows. This is relevant for applications that auto-scale.

observability: Optional[CcScheduledApplicationObservability]

Top-level observability settings for the application. This field is mutually exclusive with configuration.observability.

logs: Optional[CcScheduledApplicationObservabilityLogs]

Observability logging settings.

enabled: Optional[bool]
rollout_active_grace_period: Optional[int]

Grace period for active instances to stay alive before becoming eligible for shutdown signal due to a rollout, in seconds. Defaults to 0.

maximum604800
minimum0
class CcDurableObjectApplication: …

Each Durable Object creates and manages the lifecycle of its container instance.

id: str

An Application ID represents an identifier of an application.

account_id: str

A unique identifier for the user’s account.

created_at: str

UTC timestamp string in ISO 8601 format.

durable_objects: CcDurableObjectApplicationDurableObjects

Durable object configuration using a namespace ID.

namespace_id: str

The namespace ID of the durable object namespace to use for this application.

name: str

The application name.

scheduling_policy: Literal["durable_object"]

Selects a Durable Object-managed application. Each Durable Object creates and manages the lifecycle of its container instance. Configure application-wide observability settings here. Deployment configuration, scaling, placement constraints, versions, and rollouts do not apply.

updated_at: str

UTC timestamp string in ISO 8601 format.

configuration: Optional[CcDurableObjectApplicationConfiguration]

Application-wide settings for a Durable Object-managed application.

authorized_keys: Optional[List[CcDurableObjectApplicationConfigurationAuthorizedKey]]
public_key: str

An SSH public key.

name: Optional[str]

Optional human readable name for this key.

wrangler_ssh: Optional[CcDurableObjectApplicationConfigurationWranglerSSH]

Configuration properties for connecting with SSH to a container using Wrangler.

enabled: Optional[bool]
port: Optional[int]
maximum65535
minimum1
health: Optional[CcDurableObjectApplicationHealth]

Aggregate current activity for the latest observed placement of each instance. Runtime snapshots feed periodic background sweeps. Counts refresh after each complete sweep. Instance listings retain their separate three-month history for failure discovery.

instances: CcDurableObjectApplicationHealthInstances

Counts of observed non-terminal instances.

active: int

Number of instances whose runtime reports running or stopping.

minimum0
starting: int

Number of instances whose runtime reports starting.

minimum0
summary: Optional[Literal["pending"]]

Present as pending until the first activity sweep completes; omitted afterward.

observability: Optional[CcDurableObjectApplicationObservability]

Application-wide logging settings for a Durable Object-managed application. The application publishes these settings to its runtime metadata. Updating them does not create a deployment or rollout.

logs: Optional[CcDurableObjectApplicationObservabilityLogs]

Application-wide logging settings.

enabled: Optional[bool]

Modify an application

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
response = client.containers.applications.edit(
    application_id="application_id",
    account_id="account-123",
)
print(response)
{
  "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": {
    "id": "id",
    "account_id": "account_id",
    "configuration": {
      "image": "image",
      "authorized_keys": [
        {
          "public_key": "public_key",
          "name": "name"
        }
      ],
      "command": [
        "myapp",
        "--default-option"
      ],
      "entrypoint": [
        "/bin/bash"
      ],
      "environment_variables": [
        {
          "name": "name",
          "value": "value"
        }
      ],
      "instance_type": "lite",
      "observability": {
        "logs": {
          "enabled": true
        }
      }
    },
    "created_at": "2021-04-01T12:32:41.488Z",
    "instances": 0,
    "name": "name",
    "scheduling_policy": "default",
    "updated_at": "2021-04-01T12:32:41.488Z",
    "version": 0,
    "active_rollout_id": "active_rollout_id",
    "constraints": {
      "jurisdiction": "jurisdiction",
      "regions": [
        "WNAM"
      ]
    },
    "durable_objects": {
      "namespace_id": "14758f1afd44c09b7992073ccf00b43d"
    },
    "health": {
      "errors": [
        {
          "event": {
            "id": "id",
            "details": {
              "foo": "bar"
            },
            "message": "message",
            "name": "SchedulerPlaced",
            "statusChange": {
              "foo": "bar"
            },
            "time": "2021-04-01T12:32:41.488Z",
            "type": "Info"
          },
          "instance_id": "instance_id"
        }
      ],
      "instances": {
        "active": 0,
        "assigned": 0
      },
      "summary": "healthy"
    },
    "max_instances": 0,
    "observability": {
      "logs": {
        "enabled": true
      }
    },
    "rollout_active_grace_period": 0
  },
  "success": true
}
Returns Examples
{
  "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": {
    "id": "id",
    "account_id": "account_id",
    "configuration": {
      "image": "image",
      "authorized_keys": [
        {
          "public_key": "public_key",
          "name": "name"
        }
      ],
      "command": [
        "myapp",
        "--default-option"
      ],
      "entrypoint": [
        "/bin/bash"
      ],
      "environment_variables": [
        {
          "name": "name",
          "value": "value"
        }
      ],
      "instance_type": "lite",
      "observability": {
        "logs": {
          "enabled": true
        }
      }
    },
    "created_at": "2021-04-01T12:32:41.488Z",
    "instances": 0,
    "name": "name",
    "scheduling_policy": "default",
    "updated_at": "2021-04-01T12:32:41.488Z",
    "version": 0,
    "active_rollout_id": "active_rollout_id",
    "constraints": {
      "jurisdiction": "jurisdiction",
      "regions": [
        "WNAM"
      ]
    },
    "durable_objects": {
      "namespace_id": "14758f1afd44c09b7992073ccf00b43d"
    },
    "health": {
      "errors": [
        {
          "event": {
            "id": "id",
            "details": {
              "foo": "bar"
            },
            "message": "message",
            "name": "SchedulerPlaced",
            "statusChange": {
              "foo": "bar"
            },
            "time": "2021-04-01T12:32:41.488Z",
            "type": "Info"
          },
          "instance_id": "instance_id"
        }
      ],
      "instances": {
        "active": 0,
        "assigned": 0
      },
      "summary": "healthy"
    },
    "max_instances": 0,
    "observability": {
      "logs": {
        "enabled": true
      }
    },
    "rollout_active_grace_period": 0
  },
  "success": true
}