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 `. Obtain your API token from the QuantCDN dashboard under Profile > API Tokens.' scheme: bearer type: http