Documentation
Documentation
https://docs.quantcdn.io/
GettingStarted
https://docs.quantcdn.io/api/get-started-content/
openapi: 3.0.0
info:
description: Unified API for QuantCDN Admin and QuantCloud Platform services
title: QuantCDN AI Agents Containers API
version: 4.15.8
servers:
- description: QuantCDN Public Cloud
url: https://dashboard.quantcdn.io
- description: QuantGov Cloud
url: https://dash.quantgov.cloud
security:
- BearerAuth: []
tags:
- description: Container management and operations
name: Containers
paths:
/api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/containers:
get:
operationId: listContainers
parameters:
- description: The organisation ID
example: test-org
explode: false
in: path
name: organisation
required: true
schema:
type: string
style: simple
- description: The application ID
example: test-app
explode: false
in: path
name: application
required: true
schema:
type: string
style: simple
- description: The environment ID
example: test-env
explode: false
in: path
name: environment
required: true
schema:
type: string
style: simple
responses:
'200':
description: The containers in the environment
'404':
description: The environment not found
summary: Get the containers in an environment
tags:
- Containers
/api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/containers/{container}:
put:
operationId: updateContainer
parameters:
- description: The organisation ID
example: test-org
explode: false
in: path
name: organisation
required: true
schema:
type: string
style: simple
- description: The application ID
example: test-app
explode: false
in: path
name: application
required: true
schema:
type: string
style: simple
- description: The environment ID
example: test-env
explode: false
in: path
name: environment
required: true
schema:
type: string
style: simple
- description: The container ID
example: test-container
explode: false
in: path
name: container
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Container'
required: true
responses:
'200':
description: The updated container
'404':
description: The container not found
summary: Update a container in an environment
tags:
- Containers
components:
schemas:
Container_secrets_inner:
example:
name: name
valueFrom: valueFrom
properties:
name:
description: The environment variable name to be set in the container
type: string
valueFrom:
description: The key of the secret in the environment's 'app-secrets' store
type: string
required:
- name
- valueFrom
type: object
Container_environment_inner:
example:
name: name
value: value
properties:
name:
description: Environment variable name
type: string
value:
description: Environment variable value
type: string
required:
- name
- value
type: object
Container_healthCheck:
description: Container health check configuration
example:
retries: 7
startPeriod: 279
interval: 171
command:
- command
- command
timeout: 15
nullable: true
properties:
command:
description: The command to run to determine if the container is healthy
items:
type: string
type: array
interval:
default: 30
description: Time period (seconds) between health checks
maximum: 300
minimum: 5
type: integer
timeout:
default: 5
description: Time period (seconds) to wait for a health check to return
maximum: 60
minimum: 2
type: integer
retries:
default: 3
description: Number of times to retry a failed health check
maximum: 10
minimum: 1
type: integer
startPeriod:
description: Grace period (seconds) to ignore unhealthy checks after container starts
maximum: 300
minimum: 0
nullable: true
type: integer
type: object
Container_imageReference:
example:
identifier: identifier
type: internal
properties:
type:
description: Specifies whether the image is internal (ECR) or external (e.g., Docker Hub)
enum:
- internal
- external
type: string
identifier:
description: The image identifier. For 'internal' type, this is the image tag. For 'external' type, this is the full image name.
type: string
required:
- identifier
- type
type: object
Container_originProtectionConfig:
description: Extended origin protection configuration with IP allow list support
example:
ipAllow:
- ipAllow
- ipAllow
enabled: true
nullable: true
properties:
enabled:
default: true
description: Whether origin protection is enabled. Defaults to true if this config object is provided.
type: boolean
ipAllow:
description: List of IP addresses or CIDR ranges that can bypass origin protection for direct access (e.g., VPN IPs)
items:
type: string
nullable: true
type: array
type: object
Container_dependsOn_inner:
example:
condition: START
containerName: containerName
properties:
containerName:
description: The name of the container this container depends on
type: string
condition:
description: The condition to wait for on the dependency
enum:
- START
- HEALTHY
- COMPLETE
- SUCCESS
type: string
required:
- containerName
type: object
Container_mountPoints_inner:
example:
readOnly: false
containerPath: containerPath
sourceVolume: sourceVolume
properties:
sourceVolume:
description: The name of the logical volume
type: string
containerPath:
description: The path inside the container where the volume is mounted
type: string
readOnly:
default: false
type: boolean
required:
- containerPath
- sourceVolume
type: object
Container:
example:
originProtectionConfig:
ipAllow:
- ipAllow
- ipAllow
enabled: true
memory: 6
dependsOn:
- condition: START
containerName: containerName
- condition: START
containerName: containerName
workingDirectory: workingDirectory
exposedPorts:
- 5
- 5
cpu: 0
imageReference:
identifier: identifier
type: internal
secrets:
- name: name
valueFrom: valueFrom
- name: name
valueFrom: valueFrom
memoryReservation: 1
command:
- command
- command
environment:
- name: name
value: value
- name: name
value: value
readonlyRootFilesystem: false
originProtection: false
healthCheck:
retries: 7
startPeriod: 279
interval: 171
command:
- command
- command
timeout: 15
name: name
mountPoints:
- readOnly: false
containerPath: containerPath
sourceVolume: sourceVolume
- readOnly: false
containerPath: containerPath
sourceVolume: sourceVolume
entryPoint:
- entryPoint
- entryPoint
user: user
essential: true
properties:
name:
description: Name of the container
pattern: ^[a-zA-Z0-9_-]+$
type: string
imageReference:
$ref: '#/components/schemas/Container_imageReference'
cpu:
description: Container-level CPU units
nullable: true
type: integer
memory:
description: Container-level memory hard limit (MiB)
nullable: true
type: integer
memoryReservation:
description: Container-level memory soft limit (MiB)
nullable: true
type: integer
exposedPorts:
description: List of container ports to expose
items:
type: integer
nullable: true
type: array
mountPoints:
items:
$ref: '#/components/schemas/Container_mountPoints_inner'
nullable: true
type: array
environment:
description: Environment variables specific to this container
items:
$ref: '#/components/schemas/Container_environment_inner'
nullable: true
type: array
secrets:
description: Secrets mapped to environment variables
items:
$ref: '#/components/schemas/Container_secrets_inner'
nullable: true
type: array
healthCheck:
$ref: '#/components/schemas/Container_healthCheck'
dependsOn:
description: Container startup dependencies
items:
$ref: '#/components/schemas/Container_dependsOn_inner'
nullable: true
type: array
command:
items:
type: string
nullable: true
type: array
entryPoint:
items:
type: string
nullable: true
type: array
workingDirectory:
nullable: true
type: string
essential:
default: true
nullable: true
type: boolean
readonlyRootFilesystem:
default: false
nullable: true
type: boolean
user:
nullable: true
type: string
originProtection:
default: false
description: Enable origin protection for all exposed ports on this container. Use originProtectionConfig for advanced options like IP allow lists.
nullable: true
type: boolean
originProtectionConfig:
$ref: '#/components/schemas/Container_originProtectionConfig'
required:
- imageReference
- name
type: object
securitySchemes:
BearerAuth:
bearerFormat: JWT
description: 'Enter your Bearer token in the format: `Bearer <your-token-here>`. Obtain your API token from the QuantCDN dashboard under Profile > API Tokens.'
scheme: bearer
type: http