QuantCDN Containers API

Container management and operations

OpenAPI Specification

quantcdn-containers-api-openapi.yml Raw ↑
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