Qovery Helm Custom Domain API

The Helm Custom Domain API from Qovery — 3 operation(s) for helm custom domain.

OpenAPI Specification

qovery-helm-custom-domain-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.4
  title: Qovery Account Info Helm Custom Domain 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: Helm Custom Domain
paths:
  /helm/{helmId}/customDomain:
    get:
      summary: List helm custom domains
      description: List the custom domains of this helm
      operationId: listHelmCustomDomain
      parameters:
      - $ref: '#/components/parameters/helmId'
      tags:
      - Helm Custom Domain
      responses:
        '200':
          description: List custom domains
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomDomainResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    post:
      summary: Add custom domain to the helm.
      description: Add a custom domain to this helm in order not to use qovery autogenerated domain
      operationId: createHelmCustomDomain
      parameters:
      - $ref: '#/components/parameters/helmId'
      tags:
      - Helm Custom Domain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomDomainRequest'
      responses:
        '201':
          description: Added helm custom domain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomDomain'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /helm/{helmId}/customDomain/{customDomainId}:
    put:
      summary: Edit a Custom Domain
      description: To edit a Custom Domain you must have the project user permission
      operationId: editHelmCustomDomain
      parameters:
      - $ref: '#/components/parameters/helmId'
      - $ref: '#/components/parameters/customDomainId'
      tags:
      - Helm Custom Domain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomDomainRequest'
      responses:
        '200':
          description: Edit a CustomDomain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomDomain'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    delete:
      summary: Delete a Custom Domain
      description: To delete an CustomDomain you must have the project user permission
      operationId: deleteHelmCustomDomain
      parameters:
      - $ref: '#/components/parameters/helmId'
      - $ref: '#/components/parameters/customDomainId'
      tags:
      - Helm Custom Domain
      responses:
        '204':
          $ref: '#/components/responses/204-deletion'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    get:
      summary: Get a Custom Domain
      description: Get a custom domain
      operationId: getHelmCustomDomain
      parameters:
      - $ref: '#/components/parameters/helmId'
      - $ref: '#/components/parameters/customDomainId'
      tags:
      - Helm Custom Domain
      responses:
        '200':
          description: Get a CustomDomain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomDomain'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /helm/{helmId}/checkCustomDomain:
    get:
      summary: Check Helm Custom Domain
      operationId: checkHelmCustomDomain
      parameters:
      - $ref: '#/components/parameters/helmId'
      tags:
      - Helm Custom Domain
      responses:
        '200':
          description: Check Helm Custom Domain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckedCustomDomainsResponse'
        '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:
    customDomainId:
      name: customDomainId
      in: path
      description: Custom Domain ID
      required: true
      schema:
        type: string
        format: uuid
    helmId:
      name: helmId
      in: path
      description: Helm ID
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    CustomDomain:
      allOf:
      - $ref: '#/components/schemas/Base'
      - $ref: '#/components/schemas/CustomDomainRequest'
      - type: object
        properties:
          validation_domain:
            type: string
            description: URL provided by Qovery. You must create a CNAME on your DNS provider using that URL
          status:
            $ref: '#/components/schemas/CustomDomainStatusEnum'
          generate_certificate:
            type: boolean
            description: to control if a certificate has to be generated for this custom domain by Qovery. The default value is `true`. This flag should be set to `false` if a CDN or other entities are managing the certificate for the specified domain and the traffic is proxied by the CDN to Qovery.
          use_cdn:
            type: boolean
            description: 'Indicates if the custom domain is behind a CDN (i.e Cloudflare).

              This will condition the way we are checking CNAME before & during a deployment:

              * If `true` then we only check the domain points to an IP

              * If `false` then we check that the domain resolves to the correct service Load Balancer

              '
    CheckedCustomDomainResponse:
      title: CheckedCustomDomainResponse
      type: object
      required:
      - domain_name
      - status
      properties:
        domain_name:
          type: string
          description: domain name checked
          example: my.domain.tld
        status:
          $ref: '#/components/schemas/CheckedCustomDomainStatus'
        error_details:
          type: string
          nullable: true
          description: optional field containing information about failure check
    CheckedCustomDomainStatus:
      type: string
      enum:
      - RESOLVES_TO_IP
      - MATCHES_LOAD_BALANCER_HOST
      - DOMAIN_NOT_CONFIGURED
      - DOMAIN_LINKED_TO_WRONG_HOST
      - GENERIC_FAILURE
      description: "This enum represents the final status for your domain.\nThere are 2 successful statuses:\n  * `RESOLVES_TO_IP`: we succeeded to resolve an IP to your domain. This is the successful final status for custom domains where `use_cdn` is `true`\n  * `MATCHES_LOAD_BALANCER_HOST`: we succeeded to lookup CNAMEs & found that it matches your cluser Load Balancer host. This is the successful final status for custom domain where `use_cdn` is `false`\n  * `DOMAIN_NOT_CONFIGURED`: the domain is not configured, look at the `error_details` field for more information \n  * `DOMAIN_LINKED_TO_WRONG_HOST`: the domain has CNAME(s) that matches a different host than your Load Balancer one\n  * `GENERIC_FAILURE`: an error occured when attempting to validate your domain, look at the `error_details` field for more information\n"
    CustomDomainStatusEnum:
      type: string
      enum:
      - VALIDATION_PENDING
      example: VALIDATION_PENDING
    CustomDomainResponseList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/CustomDomain'
    CustomDomainRequest:
      type: object
      required:
      - domain
      - generate_certificate
      properties:
        domain:
          type: string
          description: your custom domain
          example: my.domain.tld
        generate_certificate:
          type: boolean
          description: to control if a certificate has to be generated for this custom domain by Qovery. The default value is `true`. This flag should be set to `false` if a CDN or other entities are managing the certificate for the specified domain and the traffic is proxied by the CDN to Qovery.
        use_cdn:
          type: boolean
          description: 'Indicates if the custom domain is behind a CDN (i.e Cloudflare).

            This will condition the way we are checking CNAME before & during a deployment:

            * If `true` then we only check the domain points to an IP

            * If `false` then we check that the domain resolves to the correct service Load Balancer

            '
    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
    CheckedCustomDomainsResponse:
      title: CheckedCustomDomainsResponse
      type: object
      required:
      - results
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/CheckedCustomDomainResponse'
  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