Qovery Container Configuration API

The Container Configuration API from Qovery — 2 operation(s) for container configuration.

OpenAPI Specification

qovery-container-configuration-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.4
  title: Qovery Account Info Container Configuration API
  description: '- Qovery is the fastest way to deploy your full-stack apps on any Cloud provider.

    - ℹ️ The API is stable and still in development.

    '
  contact:
    name: Qovery Product Team
    url: https://www.qovery.com
    email: support+api+documentation@qovery.com
  x-logo:
    url: https://console.qovery.com/assets/logos/logo-white.svg
    altText: Qovery
servers:
- url: https://api.qovery.com
security:
- bearerAuth: []
- ApiKeyAuth: []
tags:
- name: Container Configuration
paths:
  /container/{containerId}/advancedSettings:
    get:
      summary: Get advanced settings
      description: 'Get list and values of the advanced settings of the container.

        Default values for each setting are available in [our documentation](https://hub.qovery.com/docs/using-qovery/configuration/advanced-settings/)

        '
      operationId: getContainerAdvancedSettings
      parameters:
      - $ref: '#/components/parameters/containerId'
      tags:
      - Container Configuration
      responses:
        '200':
          description: Advanced settings list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerAdvancedSettings'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    put:
      summary: Edit advanced settings
      description: Edit advanced settings by returning table of advanced settings.
      operationId: editContainerAdvancedSettings
      parameters:
      - $ref: '#/components/parameters/containerId'
      tags:
      - Container Configuration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerAdvancedSettings'
      responses:
        '201':
          description: Updated advanced settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerAdvancedSettings'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /container/{containerId}/network:
    get:
      summary: Get Container Network information
      description: Get status of the container network settings.
      operationId: getContainerNetwork
      parameters:
      - $ref: '#/components/parameters/containerId'
      tags:
      - Container Configuration
      responses:
        '200':
          description: Network information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerNetwork'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    put:
      summary: Edit Container Network
      description: Edit the Network settings of the container.
      operationId: editContainerNetwork
      parameters:
      - $ref: '#/components/parameters/containerId'
      tags:
      - Container Configuration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerNetworkRequest'
      responses:
        '201':
          description: Updated container network setting
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerNetwork'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
components:
  schemas:
    ContainerNetworkRequest:
      type: object
      properties:
        sticky_session:
          type: boolean
          description: 'Specify if the sticky session option (also called persistant session) is activated or not for this container.

            If activated, user will be redirected by the load balancer to the same instance each time he access to the container.

            '
          default: false
    ContainerNetwork:
      type: object
      properties:
        sticky_session:
          type: boolean
          description: 'Specify if the sticky session option (also called persistant session) is activated or not for this container.

            If activated, user will be redirected by the load balancer to the same instance each time he access to the container.

            '
          default: false
    ContainerAdvancedSettings:
      type: object
      properties:
        deployment.custom_domain_check_enabled:
          type: boolean
          description: disable custom domain check when deploying an application
        deployment.termination_grace_period_seconds:
          type: integer
          description: define how long in seconds an application is supposed to be stopped gracefully
        deployment.affinity.node.required:
          type: object
          description: Set pod placement on specific Kubernetes nodes labels
          additionalProperties:
            type: string
        deployment.antiaffinity.pod:
          type: string
          enum:
          - Preferred
          - Requirred
          description: 'Define how you want pods affinity to behave:

            * `Preferred` allows, but does not require, pods of a given service are not co-located (or co-hosted) on a single node

            * `Requirred` ensures that the pods of a given service are not co-located (or co-hosted) on a single node (safer in term of availability but can be expensive depending on the number of replicas)

            '
        deployment.topology_spread.zone:
          type: string
          enum:
          - Disabled
          - ScheduleAnyway
          - DoNotSchedule
          description: 'Define how you want pods to be spread across availability zones:

            * `Disabled` no topology spread constraints are applied

            * `ScheduleAnyway` pods are spread across zones on a best-effort basis (soft constraint)

            * `DoNotSchedule` pods must be evenly spread across zones with a maxSkew of 1 (hard constraint)

            '
        deployment.update_strategy.type:
          type: string
          enum:
          - RollingUpdate
          - Recreate
          description: '* `RollingUpdate` gracefully rollout new versions, and automatically rollback if the new version fails to start

            * `Recreate` stop all current versions and create new ones once all old ones have been shutdown

            '
        deployment.update_strategy.rolling_update.max_unavailable_percent:
          type: integer
          description: Define the percentage of a maximum number of pods that can be unavailable during the update process
        deployment.update_strategy.rolling_update.max_surge_percent:
          type: integer
          description: Define the percentage of the maximum number of pods that can be created over the desired number of pods
        network.ingress.proxy_body_size_mb:
          type: integer
        network.ingress.force_ssl_redirect:
          type: boolean
          x-stoplight:
            id: xrdjy3znm8mpg
          description: When using SSL offloading outside of cluster, you can enforce a redirect to HTTPS even when there is no TLS certificate available
        network.ingress.enable_cors:
          type: boolean
        network.ingress.cors_allow_origin:
          type: string
        network.ingress.cors_allow_methods:
          type: string
        network.ingress.cors_allow_headers:
          type: string
        network.ingress.proxy_buffer_size_kb:
          type: integer
          description: header buffer size used while reading response header from upstream
        network.ingress.keepalive_time_seconds:
          type: integer
          description: Limits the maximum time (in seconds) during which requests can be processed through one keepalive connection
        network.ingress.keepalive_timeout_seconds:
          type: integer
          description: Sets a timeout (in seconds) during which an idle keepalive connection to an upstream server will stay open.
        network.ingress.send_timeout_seconds:
          type: integer
          description: Sets a timeout (in seconds) for transmitting a response to the client
        network.ingress.proxy_connect_timeout_seconds:
          type: integer
          description: Sets a timeout (in seconds) for establishing a connection to a proxied server
        network.ingress.proxy_send_timeout_seconds:
          type: integer
          description: Sets a timeout (in seconds) for transmitting a request to the proxied server
        network.ingress.proxy_read_timeout_seconds:
          type: integer
          description: Sets a timeout (in seconds) for reading a response from the proxied server
        network.ingress.proxy_buffering:
          type: string
          description: Allows to enable or disable nginx `proxy-buffering`
        network.ingress.proxy_request_buffering:
          type: string
          description: Allows to enable or disable nginx `proxy-request-buffering`
        network.ingress.grpc_send_timeout_seconds:
          type: integer
          description: Sets a timeout (in seconds) for transmitting a request to the grpc server
        network.ingress.grpc_read_timeout_seconds:
          type: integer
          description: Sets a timeout (in seconds) for transmitting a request to the grpc server
        network.ingress.whitelist_source_range:
          type: string
          description: "list of source ranges to allow access to ingress proxy. \nThis property can be used to whitelist source IP ranges for ingress proxy.\nThe value is a comma separated list of CIDRs, e.g. 10.0.0.0/24,172.10.0.1\nTo allow all source ranges, set 0.0.0.0/0.\n"
        network.ingress.denylist_source_range:
          type: string
          description: "list of source ranges to deny access to ingress proxy. \nThis property can be used to blacklist source IP ranges for ingress proxy.\nThe value is a comma separated list of CIDRs, e.g. 10.0.0.0/24,172.10.0.1\n"
        network.ingress.extra_headers:
          type: string
          description: Allows to define response headers
          example: '{"X-Frame-Options":"DENY ","X-Content-Type-Options":"nosniff"}'
        network.gateway_api.http_request_timeout_seconds:
          type: integer
          nullable: true
          minimum: 0
          description: Sets a timeout (in seconds) for requests proxied through the Gateway API route.
        network.gateway_api.http_connection_idle_timeout_seconds:
          type: integer
          nullable: true
          minimum: 0
          description: Sets the idle timeout (in seconds) for HTTP connections proxied through the Gateway API route.
        network.ingress.basic_auth_env_var:
          type: string
          description: 'Set the name of an environment variable to use as a basic authentication (`login:crypted_password`) from `htpasswd` command. You can add multiples comma separated values.

            '
        network.ingress.enable_sticky_session:
          type: boolean
          description: 'Enable the load balancer to bind a user''s session to a specific target.

            This ensures that all requests from the user during the session are sent to the same target

            '
        security.service_account_name:
          type: string
          description: 'Allows you to set an existing Kubernetes service account name

            '
        hpa.cpu.average_utilization_percent:
          type: integer
          description: Percentage value of cpu usage at which point pods should scale up.
        hpa.memory.average_utilization_percent:
          type: integer
          nullable: true
          description: Percentage value of memory usage at which point pods should scale up.
        security.automount_service_account_token:
          type: boolean
          description: 'Automount Kubernetes service account token to have access to Kubernetes API from pods

            '
        security.read_only_root_filesystem:
          type: boolean
          description: 'Mounts the container''s root filesystem as read-only

            '
  responses:
    '403':
      description: Access forbidden
    '404':
      description: Resource not found
    '400':
      description: Bad request
    '401':
      description: Access token is missing or invalid
  parameters:
    containerId:
      name: containerId
      in: path
      description: Container ID
      required: true
      schema:
        type: string
        format: uuid
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'JWT tokens should be used with OIDC account (human to machine). JWT tokens used by the Qovery console to communicate with the API have a TTL. Curl Example '' curl https://console.qovery.com/organization -H "Authorization: Bearer $qovery_token" '''
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Token API are generated by Qovery to manage machine to machine interaction and do not have a TTL. Curl Example '' curl https://console.qovery.com/organization -H "Authorization: Token $qovery_token" '''
x-tagGroups:
- name: Organization
  tags:
  - Organization Main Calls
  - Organization Api Token
  - Organization Account Git Repositories
  - Organization Cluster Lock
  - Organization Webhook
  - Organization Custom Role
  - Organization Event
  - Organization Annotations Group
  - Organization Labels Group
  - Organization Enterprise Connection
  - Projects
  - Members
  - Billing
  - Clusters
  - Cloud Provider
  - Cloud Provider Credentials
  - Github App
  - Container Registries
  - Helm Repositories
- name: Project
  tags:
  - Project Main Calls
  - Environments
  - Project Deployment Rule
  - Project Environment Variable
  - Project Secret
- name: Environment
  tags:
  - Environment Main Calls
  - Applications
  - Containers
  - Databases
  - Jobs
  - Helms
  - Terraforms
  - Environment Actions
  - Environment Logs
  - Environment Deployment History
  - Environment Deployment Rule
  - Environment Variable
  - Environment Secret
  - Environment Export
- name: Deployment Stage
  tags:
  - Deployment Stage Main Calls
- name: Application
  tags:
  - Application Main Calls
  - Application Actions
  - Application Configuration
  - Application Custom Domain
  - Application Database
  - Application Logs
  - Application Deployment Restriction
  - Application Deployment History
  - Application Environment Variable
  - Application Secret
  - Application Annotations Group
- name: Container
  tags:
  - Container Main Calls
  - Container Actions
  - Container Configuration
  - Container Custom Domain
  - Container Database
  - Container Logs
  - Container Deployment History
  - Container Environment Variable
  - Container Secret
  - Container Annotations Group
- name: Database
  tags:
  - Database Main Calls
  - Database Actions
  - Database Applications
  - Database Deployment History
  - Database Containers
  - Database Application
  - Database Container
  - Backups
  - Database Annotations Group
- name: Job
  tags:
  - Job Main Calls
  - Job Actions
  - Job Configuration
  - Job Custom Domain
  - Job Deployment Restriction
  - Job Deployment History
  - Job Environment Variable
  - Job Secret
  - Job Annotations Group
- name: Helm
  tags:
  - Helm Main Calls
  - Helm Actions
  - Helm Configuration
  - Helm Custom Domain
  - Helm Deployment Restriction
  - Helm Deployment History
- name: Terraform
  tags:
  - Terraform Main Calls
  - Terraform Actions
  - Terraform Configuration
  - Terraform Deployment Restriction
  - Terraform Deployment History
- name: Account
  tags:
  - Account Info
  - Git repositories
  - Referral & Rewards
- name: Git
  tags:
  - Git repositories
- name: Variable
  tags:
  - Variable Main Calls
- name: Lifecycle Template
  tags:
  - Lifecycle Template Main Calls
- name: Admin
  tags:
  - User Sign Up
- name: Alerting
  tags:
  - Alert Receivers
  - Alert Rules