POST /accounts/{account_id}/containers/applications

Create a new application. An Application represents an intent to run one or more containers, with the same image, dynamically scheduled based on constraints

Servers

Path parameters

Name Type Required Description
account_id String Yes

Account identifier.

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Request body fields

Name Type Required Description
constraints Object No
constraints.jurisdiction String No

Currently only "eu" and "fedramp" are supported. Overlap between jurisdiction and region is allowed for ENAM, WNAM (FedRAMP) and EEUR, WEUR (EU).

constraints.regions[] Array No
rollout_active_grace_period Integer No

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

Default value: 0

scheduling_policy String Yes

The scheduling policy to use for an application

Valid values:

  • "default"
max_instances Integer No

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

durable_objects No

Set of properties to configure a durable object application in Cloudchamber.

name String Yes

The name for this application

configuration Object Yes

Properties required to create a cloudchamber deployment specified by the user

configuration.instance_type String No

The instance type will be used to configure 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

Default value: "lite"

configuration.labels[] Array No

Deployment labels

configuration.labels[].name String Yes

A label name

configuration.labels[].value String Yes

A label value

configuration.command[] Array No

The command to be executed when the container starts, passed to the entrypoint. This can be overridden at run-time. If only the command is overridden at run-time, it gets passed to the default entrypoint specified in the image.

configuration.lifecycle Object No

Lifecycle configuration for a deployment.

configuration.lifecycle.max_termination_duration String No

Duration string. From Go documentation: A string representing the duration in the form "3d1h3m". Leading zero units are omitted. As a special case, durations less than one second format use a smaller unit (milli-, micro-, or nanoseconds) to ensure that the leading digit is non-zero.

configuration.image String Yes

Image url

configuration.memory_mib Integer No

Specify the memory to be used for the deployment, in MiB. The default will be the one configured for the account.

configuration.observability Object No

Settings for deployment observability such as logging.

configuration.observability.logs Object No

Observability logging settings.

configuration.observability.logs.enabled Boolean No

Default value: false

configuration.vcpu Number No

Specify the vcpu to be used for the deployment. Vcpu must be at least 1. The input value will be rounded to the nearest 0.0001. The default will be the one configured for the account.

configuration.ssh_public_key_ids[] Array No

A list of SSH public key IDs from the account

configuration.memory String No

A memory size that specifies its unit at the end.

configuration.wrangler_ssh Object No

Configuration properties for SSH'ing into a container with Wrangler

configuration.wrangler_ssh.port Number No

Default value: 22

configuration.wrangler_ssh.enabled Boolean No

Default value: true

configuration.secrets[] Array No

A list of objects with secret names and the their access types from the account

configuration.secrets[].name String Yes

The name of the secret within the container

configuration.secrets[].type String Yes

The secret access type denotes how a secret is made available within a container. Available Options are "env".

Valid values:

  • "env"
configuration.secrets[].secret String Yes

Corresponding secret name from the account

configuration.trusted_user_ca_keys[] Array No
configuration.trusted_user_ca_keys[].name String No

Optional human readable name for this key

configuration.trusted_user_ca_keys[].public_key String Yes

An SSH public key

configuration.environment_variables[] Array No

Container environment variables

configuration.environment_variables[].name String Yes

An environment variable name

configuration.environment_variables[].value String Yes

An environment variable value

configuration.experimental_flags[] Array No

Opt-in experimental flags for this application. Only a subset of experimental flags can be set by users; unsupported values are rejected.

configuration.entrypoint[] Array No

The entry point for the container, specifying the executable to run when the container starts. This can be overridden at run-time. If overridden, the default command from the image is ignored. Both entrypoint and command can be specified at run-time to completely replace the image defaults.

configuration.metadata_service Object No

Configuration for enabling the container metadata service.

configuration.metadata_service.enabled Boolean Yes

Whether the metadata service should be enabled for the deployment.

configuration.authorized_keys[] Array No
configuration.authorized_keys[].name String No

Optional human readable name for this key

configuration.authorized_keys[].public_key String Yes

An SSH public key

configuration.disk Object No

The disk configuration for this deployment. By default, all containers have a disk size of 2GB.

configuration.disk.size String No

A disk size that specifies its unit at the end.

configuration.disk.size_mb Integer No

Size of the disk, in MB.

configuration.dns Object No

Represents the /etc/resolv.conf that will appear in the deployment. If the 'dns' property is specified, even if empty object, will override the default resolv.conf of the container. The default resolv.conf of a container is 'servers = ["1.1.1.1", "9.9.9.9", "2606:4700:4700::1111"]', only if an IPv4 is assigned. The default for a non IPv4 deployment is 'servers = ["2606:4700:4700::1111", "2620:fe::fe"]'.

configuration.dns.servers[] Array No

List of DNS servers that the deployment will use to resolve domain names. You can only specify a maximum of 3.

configuration.dns.searches[] Array No

The container resolver will append these domains to every resolve query. For example, if you have 'google.com', and your deployment queries 'web', it will append 'google.com' to 'web' in the search query before trying 'web'. Limited to 6 domains.

observability Object No

Settings for application observability such as logging.

observability.target_instance_count Integer No

Fixed number of instances that should receive the application-level observability overlay. Mutually exclusive with target_instance_percentage.

observability.logs Object No

Observability logging settings.

observability.logs.enabled Boolean No

Default value: false

observability.target_instance_percentage Integer No

Percentage of instances that should receive the application-level observability overlay. This rounds up so at least this percentage of instances is targeted. Mutually exclusive with target_instance_count.

instances Integer Yes

Number of deployments to create

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.