Skip to content
Start here

Modify an application

client.Containers.Applications.Edit(ctx, applicationID, params) (*ApplicationEditResponse, error)
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
applicationID string

An Application ID represents an identifier of an application.

params ApplicationEditParams
AccountID param.Field[string]

Path param: Account identifier.

Configuration param.Field[ApplicationEditParamsConfiguration]Optional

Body param: Application configuration fields you can change without creating a rollout.

AuthorizedKeys []ApplicationEditParamsConfigurationAuthorizedKeyOptional
PublicKey string

An SSH public key.

Name stringOptional

Optional human readable name for this key.

WranglerSSH ApplicationEditParamsConfigurationWranglerSSHOptional

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

Enabled boolOptional
Port int64Optional
maximum65535
minimum1
Constraints param.Field[ApplicationEditParamsConstraints]Optional

Body param

Jurisdiction stringOptional

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 []stringOptional
MaxInstances param.Field[int64]Optional

Body param: Maximum number of instances that an autoscaling application can run.

minimum0
Observability param.Field[ApplicationEditParamsObservability]Optional

Body param: 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 ApplicationEditParamsObservabilityLogsOptional

Observability logging settings.

Enabled boolOptional
RolloutActiveGracePeriod param.Field[int64]Optional

Body param: 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
type ApplicationEditResponse interface{…}

The public Containers API returns an application.

One of the following:
type ApplicationEditResponseCcScheduledApplication struct{…}

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

ID string

An Application ID represents an identifier of an application.

AccountID string

A unique identifier for the user’s account.

Configuration ApplicationEditResponseCcScheduledApplicationConfiguration

User-specified container configuration.

Image string

Image url.

AuthorizedKeys []ApplicationEditResponseCcScheduledApplicationConfigurationAuthorizedKeyOptional
PublicKey string

An SSH public key.

Name stringOptional

Optional human readable name for this key.

Command []stringOptional

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 []stringOptional

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.

EnvironmentVariables []ApplicationEditResponseCcScheduledApplicationConfigurationEnvironmentVariableOptional

Container environment variables.

Name string

An environment variable name.

Value string

An environment variable value.

InstanceType ApplicationEditResponseCcScheduledApplicationConfigurationInstanceTypeOptional

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:
const ApplicationEditResponseCcScheduledApplicationConfigurationInstanceTypeLite ApplicationEditResponseCcScheduledApplicationConfigurationInstanceType = "lite"
const ApplicationEditResponseCcScheduledApplicationConfigurationInstanceTypeBasic ApplicationEditResponseCcScheduledApplicationConfigurationInstanceType = "basic"
const ApplicationEditResponseCcScheduledApplicationConfigurationInstanceTypeStandard1 ApplicationEditResponseCcScheduledApplicationConfigurationInstanceType = "standard-1"
const ApplicationEditResponseCcScheduledApplicationConfigurationInstanceTypeStandard2 ApplicationEditResponseCcScheduledApplicationConfigurationInstanceType = "standard-2"
const ApplicationEditResponseCcScheduledApplicationConfigurationInstanceTypeStandard3 ApplicationEditResponseCcScheduledApplicationConfigurationInstanceType = "standard-3"
const ApplicationEditResponseCcScheduledApplicationConfigurationInstanceTypeStandard4 ApplicationEditResponseCcScheduledApplicationConfigurationInstanceType = "standard-4"
Observability ApplicationEditResponseCcScheduledApplicationConfigurationObservabilityOptional

Settings for deployment observability such as logging.

Logs ApplicationEditResponseCcScheduledApplicationConfigurationObservabilityLogsOptional

Observability logging settings.

Enabled boolOptional
CreatedAt string

UTC timestamp string in ISO 8601 format.

Instances int64

Number of deployments to create.

Name string

The application name.

SchedulingPolicy ApplicationEditResponseCcScheduledApplicationSchedulingPolicy

The scheduling policy to use for an application.

One of the following:
const ApplicationEditResponseCcScheduledApplicationSchedulingPolicyDefault ApplicationEditResponseCcScheduledApplicationSchedulingPolicy = "default"
const ApplicationEditResponseCcScheduledApplicationSchedulingPolicyDurableObject ApplicationEditResponseCcScheduledApplicationSchedulingPolicy = "durable_object"
UpdatedAt string

UTC timestamp string in ISO 8601 format.

Version int64
ActiveRolloutID stringOptional

An identifier for a specific rollout within an application.

Constraints ApplicationEditResponseCcScheduledApplicationConstraintsOptional
Jurisdiction stringOptional

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 []stringOptional
DurableObjects ApplicationEditResponseCcScheduledApplicationDurableObjectsOptional

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

NamespaceID string

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

Health ApplicationEditResponseCcScheduledApplicationHealthOptional
Errors []ApplicationEditResponseCcScheduledApplicationHealthError
Event ApplicationEditResponseCcScheduledApplicationHealthErrorsEvent

An event within a Placement or a Job.

ID string
Details map[string, unknown]
Message string
Name ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName

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:
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameSchedulerPlaced ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "SchedulerPlaced"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameNetworkingIPAssigned ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "NetworkingIPAssigned"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameVmStarted ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "VMStarted"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameImagePulled ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "ImagePulled"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameImagePullError ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "ImagePullError"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameVmFailedToStart ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "VMFailedToStart"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameNetworkingIPAssignmentFailed ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "NetworkingIPAssignmentFailed"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameVmRunning ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "VMRunning"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameVmStopping ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "VMStopping"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameVmStopped ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "VMStopped"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameVmFailed ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "VMFailed"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameRuntimeStartFailed ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "RuntimeStartFailed"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameSSHStarted ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "SSHStarted"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameServiceHealthUpdates ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "ServiceHealthUpdates"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameCheckUpdate ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "CheckUpdate"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameDurableObjectConnected ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "DurableObjectConnected"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventNameContainerStarted ApplicationEditResponseCcScheduledApplicationHealthErrorsEventName = "ContainerStarted"
StatusChange map[string, unknown]
Time string

UTC timestamp string in ISO 8601 format.

Type ApplicationEditResponseCcScheduledApplicationHealthErrorsEventType
One of the following:
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventTypeInfo ApplicationEditResponseCcScheduledApplicationHealthErrorsEventType = "Info"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventTypeError ApplicationEditResponseCcScheduledApplicationHealthErrorsEventType = "Error"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventTypeWarn ApplicationEditResponseCcScheduledApplicationHealthErrorsEventType = "Warn"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventTypeUserError ApplicationEditResponseCcScheduledApplicationHealthErrorsEventType = "UserError"
const ApplicationEditResponseCcScheduledApplicationHealthErrorsEventTypeSystemError ApplicationEditResponseCcScheduledApplicationHealthErrorsEventType = "SystemError"
InstanceID string

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

Instances ApplicationEditResponseCcScheduledApplicationHealthInstances

Shows a count of application instance states.

Active int64

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 int64

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 ApplicationEditResponseCcScheduledApplicationHealthSummaryOptional

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:
const ApplicationEditResponseCcScheduledApplicationHealthSummaryHealthy ApplicationEditResponseCcScheduledApplicationHealthSummary = "healthy"
const ApplicationEditResponseCcScheduledApplicationHealthSummaryDegraded ApplicationEditResponseCcScheduledApplicationHealthSummary = "degraded"
const ApplicationEditResponseCcScheduledApplicationHealthSummaryUnhealthy ApplicationEditResponseCcScheduledApplicationHealthSummary = "unhealthy"
const ApplicationEditResponseCcScheduledApplicationHealthSummaryPending ApplicationEditResponseCcScheduledApplicationHealthSummary = "pending"
MaxInstances int64Optional

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

Observability ApplicationEditResponseCcScheduledApplicationObservabilityOptional

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

Logs ApplicationEditResponseCcScheduledApplicationObservabilityLogsOptional

Observability logging settings.

Enabled boolOptional
RolloutActiveGracePeriod int64Optional

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
type ApplicationEditResponseCcDurableObjectApplication struct{…}

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

ID string

An Application ID represents an identifier of an application.

AccountID string

A unique identifier for the user’s account.

CreatedAt string

UTC timestamp string in ISO 8601 format.

DurableObjects ApplicationEditResponseCcDurableObjectApplicationDurableObjects

Durable object configuration using a namespace ID.

NamespaceID string

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

Name string

The application name.

SchedulingPolicy ApplicationEditResponseCcDurableObjectApplicationSchedulingPolicy

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.

UpdatedAt string

UTC timestamp string in ISO 8601 format.

Configuration ApplicationEditResponseCcDurableObjectApplicationConfigurationOptional

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

AuthorizedKeys []ApplicationEditResponseCcDurableObjectApplicationConfigurationAuthorizedKeyOptional
PublicKey string

An SSH public key.

Name stringOptional

Optional human readable name for this key.

WranglerSSH ApplicationEditResponseCcDurableObjectApplicationConfigurationWranglerSSHOptional

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

Enabled boolOptional
Port int64Optional
maximum65535
minimum1
Health ApplicationEditResponseCcDurableObjectApplicationHealthOptional

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 ApplicationEditResponseCcDurableObjectApplicationHealthInstances

Counts of observed non-terminal instances.

Active int64

Number of instances whose runtime reports running or stopping.

minimum0
Starting int64

Number of instances whose runtime reports starting.

minimum0
Summary ApplicationEditResponseCcDurableObjectApplicationHealthSummaryOptional

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

Observability ApplicationEditResponseCcDurableObjectApplicationObservabilityOptional

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 ApplicationEditResponseCcDurableObjectApplicationObservabilityLogsOptional

Application-wide logging settings.

Enabled boolOptional

Modify an application

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/containers"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.Containers.Applications.Edit(
    context.TODO(),
    "application_id",
    containers.ApplicationEditParams{
      AccountID: cloudflare.F("account-123"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", 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
}