Qovery Container Registries API

The Container Registries API from Qovery — 4 operation(s) for container registries.

OpenAPI Specification

qovery-container-registries-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.4
  title: Qovery Account Info Container Registries 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 Registries
paths:
  /organization/{organizationId}/containerRegistry:
    get:
      summary: List organization container registries
      operationId: listContainerRegistry
      parameters:
      - $ref: '#/components/parameters/organizationId'
      tags:
      - Container Registries
      responses:
        '200':
          description: List container registries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerRegistryResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    post:
      summary: Create a container registry
      operationId: createContainerRegistry
      parameters:
      - $ref: '#/components/parameters/organizationId'
      tags:
      - Container Registries
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerRegistryRequest'
      responses:
        '201':
          description: Create a Container Registry
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerRegistryResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/containerRegistry/{containerRegistryId}:
    get:
      summary: Get a container registry
      operationId: getContainerRegistry
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/containerRegistryId'
      tags:
      - Container Registries
      responses:
        '200':
          description: The container registry
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerRegistryResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    delete:
      summary: Delete a container registry
      operationId: deleteContainerRegistry
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/containerRegistryId'
      tags:
      - Container Registries
      responses:
        '204':
          $ref: '#/components/responses/204-deletion'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    put:
      summary: Edit a container registry
      operationId: editContainerRegistry
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/containerRegistryId'
      tags:
      - Container Registries
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerRegistryRequest'
      responses:
        '200':
          description: Edited the container registry
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerRegistryResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/containerRegistry/{containerRegistryId}/images:
    get:
      summary: List image version for a container registry
      operationId: getContainerVersions
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/containerRegistryId'
      - $ref: '#/components/parameters/imageName'
      - $ref: '#/components/parameters/searchImageName'
      tags:
      - Container Registries
      responses:
        '200':
          description: The container registry versions list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerVersionResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /availableContainerRegistry:
    get:
      summary: List supported container registries
      description: List supported container registries by Qovery and get the mandatory authentification configuration.
      operationId: listAvailableContainerRegistry
      tags:
      - Container Registries
      responses:
        '200':
          description: supported container registries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailableContainerRegistryResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
components:
  responses:
    '404':
      description: Resource not found
    204-deletion:
      description: The resource was deleted successfully
    '403':
      description: Access forbidden
    '400':
      description: Bad request
    '401':
      description: Access token is missing or invalid
  parameters:
    searchImageName:
      name: search
      in: query
      required: false
      description: partial container image name to search
      schema:
        type: string
    containerRegistryId:
      name: containerRegistryId
      in: path
      description: Container Registry ID
      required: true
      schema:
        type: string
        format: uuid
    imageName:
      name: imageName
      in: query
      required: false
      description: container image name
      schema:
        type: string
    organizationId:
      name: organizationId
      in: path
      description: Organization ID
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    ContainerVersionResponseList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ContainerVersionResponse'
    ContainerRegistryResponseList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ContainerRegistryResponse'
    ContainerRegistryKindEnum:
      type: string
      enum:
      - ECR
      - SCALEWAY_CR
      - DOCKER_HUB
      - GITHUB_CR
      - GITHUB_ENTERPRISE_CR
      - GITLAB_CR
      - PUBLIC_ECR
      - DOCR
      - GENERIC_CR
      - GCP_ARTIFACT_REGISTRY
      - AZURE_CR
      description: The type of your container registry
    ContainerVersionResponse:
      type: object
      properties:
        image_name:
          type: string
        versions:
          type: array
          items:
            type: string
    AvailableContainerRegistryResponseList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AvailableContainerRegistryResponse'
    ContainerRegistryRequest:
      type: object
      required:
      - name
      - kind
      - config
      properties:
        name:
          type: string
        kind:
          $ref: '#/components/schemas/ContainerRegistryKindEnum'
        description:
          type: string
        url:
          type: string
          format: uri
          description: 'URL of the container registry:

            * For `DOCKER_HUB`: it must be `https://docker.io` (default with ''https://docker.io'' if no url provided for `DOCKER_HUB`)

            * For `GITHUB_CR`: it must be `https://ghcr.io` (default with ''https://ghcr.io'' if no url provided for `GITHUB_CR`)

            * For `GITLAB_CR`: it must be `https://registry.gitlab.com` (default with ''https://registry.gitlab.com'' if no url provided for `GITLAB_CR`)

            * For others: it''s required and must start by `https://`

            '
        config:
          type: object
          description: 'This field is dependent of the container registry kind:

            * `ECR` needs in the config: region, access_key_id, secret_access_key

            * `SCALEWAY_CR` needs in the config: region, scaleway_access_key, scaleway_secret_key

            * `GCP_ARTIFACT_REGISTRY` needs in the config: region, json_credentials

            * `DOCKER_HUB` needs in the config (optional): username, password

            * `GITHUB_CR` needs in the config (optional): username, password

            * `GITLAB_CR` needs in the config (optional): username, password

            * `PUBLIC_ECR` doesn''t need credentials info

            * `GENERIC_CR` needs in the config (optional): username, password

            * `DOCR` is not supported anymore

            '
          properties:
            access_key_id:
              type: string
              description: Required if kind is `ECR` or `PUBLIC_ECR`
            secret_access_key:
              type: string
              description: Required if kind is `ECR` or `PUBLIC_ECR`
            region:
              type: string
              description: Required if kind is `ECR` or `SCALEWAY_CR`
            scaleway_access_key:
              type: string
              description: Required if kind is `SCALEWAY_CR`
            scaleway_secret_key:
              type: string
              description: Required if kind is `SCALEWAY_CR`
            scaleway_project_id:
              type: string
              x-stoplight:
                id: eomu5mjvhi6uu
              description: Required if kind is `SCALEWAY_CR`
            json_credentials:
              type: string
              description: Required if kind is `GCP_ARTIFACT_REGISTRY`
            username:
              type: string
              description: "optional, for kind `DOCKER_HUB`  \nWe encourage you to set credentials for Docker Hub due to the limits on the pull rate\n"
            password:
              type: string
              description: "optional, for kind `DOCKER_HUB`  \nWe encourage you to set credentials for Docker Hub due to the limits on the pull rate\n"
            role_arn:
              type: string
              x-stoplight:
                id: mzi9w1zsswj47
              description: For ECR, you can either set a static access_key or use a role arn that we are going to assume
            azure_tenant_id:
              type: string
              x-stoplight:
                id: zjybtgippp0k2
              description: Required if kind is `AZURE_CR`.
            azure_subscription_id:
              type: string
              x-stoplight:
                id: eaqm4swmqt9ty
              description: Required if kind is `AZURE_CR`.
    ContainerRegistryResponse:
      allOf:
      - $ref: '#/components/schemas/Base'
      - type: object
        properties:
          name:
            type: string
          kind:
            $ref: '#/components/schemas/ContainerRegistryKindEnum'
          description:
            type: string
          url:
            type: string
            description: URL of the container registry
          cluster:
            type: object
            required:
            - id
            - name
            properties:
              id:
                type: string
                x-stoplight:
                  id: y0l22s5yhh4ez
                format: uuid
              name:
                type: string
                x-stoplight:
                  id: 5jak2m85ljxaa
          associated_services_count:
            type: integer
            x-stoplight:
              id: 02mqr04rogfem
            description: The number of services using this container registry
          config:
            type: object
            x-stoplight:
              id: s9rg5wox9j00z
            properties:
              username:
                type: string
                x-stoplight:
                  id: 9g2hk57o11s8k
              region:
                type: string
                x-stoplight:
                  id: fo0nnlsnrdn0k
              scaleway_access_key:
                type: string
                x-stoplight:
                  id: fdb55y4vnpndk
              scaleway_project_id:
                type: string
                x-stoplight:
                  id: ra9oc489c2wyt
              access_key_id:
                type: string
                x-stoplight:
                  id: s5elye0gv4lks
              role_arn:
                type: string
                x-stoplight:
                  id: iusxfgcmg72tl
              azure_tenant_id:
                type: string
                x-stoplight:
                  id: obk7v9hlx3jv4
              azure_subscription_id:
                type: string
                x-stoplight:
                  id: nrvn3j8xq81da
              azure_application_id:
                type: string
                x-stoplight:
                  id: t4jvfihz1ml04
              azure_application_object_id:
                type: string
                x-stoplight:
                  id: 2soynl0stz0lh
    AvailableContainerRegistryResponse:
      type: object
      required:
      - kind
      - required_config
      - is_mandatory
      properties:
        kind:
          $ref: '#/components/schemas/ContainerRegistryKindEnum'
        required_config:
          type: object
          additionalProperties: true
        is_mandatory:
          type: boolean
    Base:
      type: object
      required:
      - id
      - created_at
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          readOnly: true
          format: date-time
        updated_at:
          type: string
          readOnly: true
          format: date-time
  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