> ## Documentation Index
> Fetch the complete documentation index at: https://www.qovery.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a helm



## OpenAPI

````yaml /api-reference/openapi.yaml post /environment/{environmentId}/helm
openapi: 3.0.0
info:
  version: 1.0.4
  title: Qovery 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: Account
  - name: Account Info
  - name: Alert Receivers
  - name: Alert Rules
  - name: Admin
  - name: ArgoCD
  - name: Application
  - name: Application Actions
  - name: Application Configuration
  - name: Application Database
  - name: Application Deployment Restriction
  - name: Application Deployment History
  - name: Application Environment Variable
  - name: Application Logs
  - name: Application Main Calls
  - name: Application Secret
  - name: Application Annotations Group
  - name: Applications
  - name: AutoscalingPolicy
  - name: Container
  - name: Container Actions
  - name: Container Configuration
  - name: Container Database
  - name: Container Deployment History
  - name: Container Environment Variable
  - name: Container Logs
  - name: Container Main Calls
  - name: Container Registry
  - name: Container Secret
  - name: Container Annotations Group
  - name: Containers
  - name: Deployment Stage Main Calls
  - name: Job
  - name: Job Actions
  - name: Job Configuration
  - name: Job Database
  - name: Job Deployment Restriction
  - name: Job Deployment History
  - name: Job Environment Variable
  - name: Job Logs
  - name: Job Main Calls
  - name: Job Registry
  - name: Job Secret
  - name: Job Annotations Group
  - name: Jobs
  - name: KedaTriggerAuthentication
  - name: Helm
  - name: Helm Actions
  - name: Helm Configuration
  - name: Helm Database
  - name: Helm Deployment Restriction
  - name: Helm Deployment History
  - name: Helm Logs
  - name: Helm Main Calls
  - name: Helm Repository
  - name: Helms
  - name: Backups
  - name: Billing
  - name: Cloud Provider
  - name: Cloud Provider Credentials
  - name: Clusters
  - name: Custom Domain
  - name: Container Custom Domain
  - name: Database
  - name: Database Actions
  - name: Database Application
  - name: Database Container
  - name: Database Deployment History
  - name: Database Main Calls
  - name: Database Annotations Group
  - name: Databases
  - name: Environment
  - name: Environment Actions
  - name: Environment Deployment History
  - name: Environment Deployment Rule
  - name: Environment Logs
  - name: Environment Main Calls
  - name: Environment Secret
  - name: Environment Variable
  - name: Environments
  - name: Git
  - name: Github App
  - name: Git repositories
  - name: Members
  - name: Organization
  - name: Organization Account Git Repositories
  - name: Organization Cluster Lock
  - name: Organization Main Calls
  - name: Organization Custom Role
  - name: Organization Event
  - name: Organization Api Token
  - name: Organization Webhook
  - name: Organization Annotations Group
  - name: Organization Labels Group
  - name: Organization Enterprise Connection
  - name: Project
  - name: Project Deployment Rule
  - name: Project Environment Variable
  - name: Project Main Calls
  - name: Project Secret
  - name: Projects
  - name: Referral & Rewards
  - name: Secret Manager Access
  - name: Terraforms
  - name: Terraform Main Calls
  - name: Terraform Resources
  - name: Terraform Deployment History
  - name: Terraform Deployment Restriction
  - name: Container Registries
  - name: Helm Repositories
  - name: User Sign Up
  - name: Variable Main Calls
  - name: Helm Custom Domain
  - name: Lifecycle Template Main Calls
paths:
  /environment/{environmentId}/helm:
    post:
      tags:
        - Helms
      summary: Create a helm
      operationId: createHelm
      parameters:
        - $ref: '#/components/parameters/environmentId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HelmRequest'
      responses:
        '201':
          description: Create helm
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HelmResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Helm name within the environment is already taken
components:
  parameters:
    environmentId:
      name: environmentId
      in: path
      description: Environment ID
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    HelmRequest:
      allOf:
        - $ref: '#/components/schemas/HelmPortRequest'
        - type: object
          required:
            - name
            - auto_deploy
            - source
            - arguments
            - values_override
          properties:
            name:
              type: string
              description: name is case insensitive
            description:
              type: string
            timeout_sec:
              type: integer
              minimum: 0
              default: 600
              description: >
                Maximum number of seconds allowed for helm to run before killing
                it and mark it as failed
            auto_preview:
              type: boolean
              description: >
                Indicates if the 'environment preview option' is enabled.  

                If enabled, a preview environment will be automatically cloned
                when `/preview` endpoint is called or when a new commit is
                updated.

                If not specified, it takes the value of the `auto_preview`
                property from the associated environment.
              nullable: true
            auto_deploy:
              type: boolean
              description: >
                Specify if the helm will be automatically updated after
                receiving a new image tag or a new commit according to the
                source type.
            source:
              oneOf:
                - type: object
                  properties:
                    git_repository:
                      $ref: '#/components/schemas/HelmGitRepositoryRequest'
                - type: object
                  properties:
                    helm_repository:
                      type: object
                      properties:
                        repository:
                          type: string
                          format: UUID
                          description: The id of the helm repository
                          nullable: true
                        chart_name:
                          type: string
                          description: The name of the chart in the repository
                        chart_version:
                          type: string
                          description: The version of the chart to use
            arguments:
              type: array
              description: The extra arguments to pass to helm
              items:
                type: string
            allow_cluster_wide_resources:
              type: boolean
              default: false
              description: >
                If we should allow the chart to deploy object outside his
                specified namespace.

                Setting this flag to true, requires special rights
            values_override:
              type: object
              description: |
                Specify helm values you want to set or override
              properties:
                set:
                  $ref: '#/components/schemas/HelmKeyValues'
                set_string:
                  $ref: '#/components/schemas/HelmKeyValues'
                set_json:
                  $ref: '#/components/schemas/HelmKeyValues'
                file:
                  type: object
                  nullable: true
                  properties:
                    git:
                      type: object
                      nullable: true
                      required:
                        - git_repository
                        - paths
                      properties:
                        git_repository:
                          $ref: '#/components/schemas/ApplicationGitRepositoryRequest'
                        paths:
                          type: array
                          description: >-
                            List of path inside your git repository to locate
                            values file. Must start by a /
                          items:
                            type: string
                    raw:
                      type: object
                      nullable: true
                      properties:
                        values:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The name of the value file
                              content:
                                type: string
                                description: The content of the value file
            icon_uri:
              type: string
              format: uri
              description: Icon URI representing the helm service.
              x-stoplight:
                id: 117p5u95nwx2p
    HelmResponse:
      allOf:
        - $ref: '#/components/schemas/Base'
        - type: object
          required:
            - environment
            - name
            - auto_preview
            - auto_deploy
            - source
            - arguments
            - allow_cluster_wide_resources
            - values_override
            - icon_uri
            - service_type
          properties:
            environment:
              $ref: '#/components/schemas/ReferenceObject'
            name:
              type: string
              description: name is case insensitive
            description:
              type: string
            timeout_sec:
              type: integer
              minimum: 0
              default: 600
              description: >
                Maximum number of seconds allowed for helm to run before killing
                it and mark it as failed
            auto_preview:
              type: boolean
              description: >
                Indicates if the 'environment preview option' is enabled.  

                If enabled, a preview environment will be automatically cloned
                when `/preview` endpoint is called.  

                If not specified, it takes the value of the `auto_preview`
                property from the associated environment.
            auto_deploy:
              type: boolean
              description: >
                Specify if the service will be automatically updated after
                receiving a new image tag or a new commit according to the
                source type.
            ports:
              type: array
              items:
                oneOf:
                  - $ref: '#/components/schemas/HelmPortResponseWithServiceName'
                  - $ref: '#/components/schemas/HelmPortResponseWithServiceSelectors'
                discriminator:
                  propertyName: port_type
                  mapping:
                    SERVICE_NAME:
                      $ref: '#/components/schemas/HelmPortResponseWithServiceName'
                    SERVICE_SELECTORS:
                      $ref: >-
                        #/components/schemas/HelmPortResponseWithServiceSelectors
            source:
              nullable: false
              oneOf:
                - required:
                    - git
                  properties:
                    git:
                      $ref: '#/components/schemas/HelmSourceGitResponse'
                  type: object
                - x-stoplight:
                    id: 0prdehm6z8pua
                  required:
                    - repository
                  properties:
                    repository:
                      $ref: '#/components/schemas/HelmSourceRepositoryResponse'
                  type: object
            arguments:
              type: array
              description: The extra arguments to pass to helm
              items:
                type: string
            allow_cluster_wide_resources:
              type: boolean
              default: false
              description: >
                If we should allow the chart to deploy object outside his
                specified namespace.

                Setting this flag to true, requires special rights
            values_override:
              type: object
              description: |
                Specify helm values you want to set or override
              properties:
                set:
                  $ref: '#/components/schemas/HelmKeyValues'
                set_string:
                  $ref: '#/components/schemas/HelmKeyValues'
                set_json:
                  $ref: '#/components/schemas/HelmKeyValues'
                file:
                  type: object
                  nullable: true
                  properties:
                    raw:
                      type: object
                      nullable: true
                      required:
                        - values
                      properties:
                        values:
                          type: array
                          items:
                            type: object
                            required:
                              - name
                              - content
                            properties:
                              name:
                                type: string
                                description: The name of the value file
                              content:
                                type: string
                                description: The content of the value file
                    git:
                      type: object
                      nullable: true
                      required:
                        - git_repository
                        - paths
                      properties:
                        git_repository:
                          $ref: '#/components/schemas/ApplicationGitRepository'
                        paths:
                          type: array
                          description: >-
                            List of path inside your git repository to locate
                            values file. Must start by a /
                          items:
                            type: string
            icon_uri:
              type: string
              format: uri
              description: Icon URI representing the helm service.
              x-stoplight:
                id: i2pvbugqsldhe
            service_type:
              $ref: '#/components/schemas/ServiceTypeEnum'
    HelmPortRequest:
      type: object
      properties:
        ports:
          type: array
          items:
            allOf:
              - type: object
                required:
                  - internal_port
                properties:
                  name:
                    type: string
                  internal_port:
                    type: integer
                    example: 8080
                    description: The listening port of your service.
                  external_port:
                    type: integer
                    example: 8080
                    description: >-
                      The exposed port for your service. This is optional. If
                      not set a default port will be used.
                  namespace:
                    type: string
                  protocol:
                    $ref: '#/components/schemas/HelmPortProtocolEnum'
                  is_default:
                    type: boolean
                    description: is the default port to use for domain
              - oneOf:
                  - type: object
                    properties:
                      service_selectors:
                        type: array
                        items:
                          $ref: '#/components/schemas/KubernetesSelector'
                  - type: object
                    properties:
                      service_name:
                        type: string
    HelmGitRepositoryRequest:
      type: object
      required:
        - provider
        - owner
        - name
        - url
      properties:
        url:
          type: string
          description: application git repository URL
          example: https://github.com/Qovery/simple-node-app
        branch:
          type: string
          description: |
            Name of the branch to use. This is optional
            If not specified, then the branch used is the `main` or `master` one
          example: feat/text_xxx
        root_path:
          type: string
          default: /
          description: indicates the root path of the application.
        git_token_id:
          type: string
          format: uuid
          description: The git token id on Qovery side
          nullable: true
      title: ''
    HelmKeyValues:
      type: array
      description: 'The input is in json array format: [ [$KEY,$VALUE], [...] ]'
      items:
        type: array
        items:
          type: string
    ApplicationGitRepositoryRequest:
      type: object
      required:
        - url
        - owner
        - name
        - provider
      properties:
        url:
          type: string
          description: application git repository URL
          example: https://github.com/Qovery/simple-node-app
        branch:
          type: string
          description: |
            Name of the branch to use. This is optional
            If not specified, then the branch used is the `main` or `master` one
          example: feat/text_xxx
        root_path:
          type: string
          default: /
          description: indicates the root path of the application.
        git_token_id:
          type: string
          format: uuid
          description: The git token id on Qovery side
          nullable: true
        provider:
          $ref: '#/components/schemas/GitProviderEnum'
    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
    ReferenceObject:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
    HelmPortResponseWithServiceName:
      allOf:
        - $ref: '#/components/schemas/HelmPortResponseBase'
        - type: object
          required:
            - service_name
          properties:
            service_name:
              type: string
    HelmPortResponseWithServiceSelectors:
      allOf:
        - $ref: '#/components/schemas/HelmPortResponseBase'
        - type: object
          required:
            - service_selectors
          properties:
            service_selectors:
              type: array
              items:
                $ref: '#/components/schemas/KubernetesSelector'
    HelmSourceGitResponse:
      title: HelmSourceGitResponse
      x-stoplight:
        id: lsxautcdafty6
      type: object
      required:
        - git_repository
      properties:
        git_repository:
          $ref: '#/components/schemas/ApplicationGitRepository'
    HelmSourceRepositoryResponse:
      title: HelmSourceRepositoryResponse
      x-stoplight:
        id: 4u8sg5mvbz502
      type: object
      required:
        - chart_name
        - chart_version
        - repository
      properties:
        chart_name:
          type: string
          x-stoplight:
            id: myqqxis6r2wum
        chart_version:
          type: string
          x-stoplight:
            id: bxqymhkfiwauw
        repository:
          type: object
          x-stoplight:
            id: fr4th9yrro2rh
          required:
            - id
            - name
            - url
          properties:
            id:
              type: string
              x-stoplight:
                id: 4mb2ymh7anud4
              format: uu
            name:
              type: string
              x-stoplight:
                id: bamkqh6qvsenc
            url:
              type: string
              x-stoplight:
                id: qxjxb9crdcsyv
              format: uri
    ApplicationGitRepository:
      type: object
      required:
        - provider
        - owner
        - name
        - url
      properties:
        has_access:
          type: boolean
        provider:
          $ref: '#/components/schemas/GitProviderEnum'
        owner:
          type: string
          example: John Doe
        url:
          type: string
          format: uri
        name:
          type: string
          description: repository name
          example: simple-node-app
        branch:
          type: string
        root_path:
          type: string
        deployed_commit_id:
          type: string
          description: Git commit ID corresponding to the deployed version of the app
        deployed_commit_date:
          type: string
          readOnly: true
          format: date-time
          description: Git commit date corresponding to the deployed version of the app
        deployed_commit_contributor:
          type: string
          description: Git commit user corresponding to the deployed version of the app
        deployed_commit_tag:
          type: string
          example: v1.0.1
        git_token_id:
          type: string
          nullable: true
        git_token_name:
          type: string
          nullable: true
      title: ''
    ServiceTypeEnum:
      type: string
      x-stoplight:
        id: d66063cd29913
      description: type of the service (application, database, job, ...)
      enum:
        - APPLICATION
        - DATABASE
        - CONTAINER
        - JOB
        - HELM
        - TERRAFORM
        - ARGOCD_APP
    HelmPortProtocolEnum:
      type: string
      default: HTTP
      enum:
        - HTTP
        - GRPC
    KubernetesSelector:
      title: KubernetesSelector
      x-stoplight:
        id: 4i1ztgngi75vs
      type: object
      required:
        - key
        - value
      properties:
        key:
          type: string
          x-stoplight:
            id: 1zcgvzdknhr8n
        value:
          type: string
          x-stoplight:
            id: 6zpc45u4laog4
    GitProviderEnum:
      type: string
      enum:
        - BITBUCKET
        - GITHUB
        - GITLAB
    HelmPortResponseBase:
      type: object
      required:
        - id
        - internal_port
        - protocol
        - port_type
      properties:
        id:
          type: string
          format: uuid
        port_type:
          type: string
        name:
          type: string
        internal_port:
          type: integer
          example: 8080
          description: The listening port of your service.
        external_port:
          type: integer
          example: 8080
          description: >-
            The exposed port for your service. This is optional. If not set a
            default port will be used.
        namespace:
          type: string
        protocol:
          $ref: '#/components/schemas/HelmPortProtocolEnum'
        is_default:
          type: boolean
          description: is the default port to use for domain
  responses:
    '400':
      description: Bad request
    '401':
      description: Access token is missing or invalid
    '403':
      description: Access forbidden
    '404':
      description: Resource not found
  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" '

````