openapi: 3.0.0 info: version: 1.0.4 title: Qovery Account Info Helms 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: Helms paths: /defaultHelmAdvancedSettings: get: summary: List default helm advanced settings operationId: getDefaultHelmAdvancedSettings tags: - Helms responses: '200': description: Default helm advanced settings content: application/json: schema: $ref: '#/components/schemas/HelmAdvancedSettings' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' /environment/{environmentId}/helm: get: summary: List helms operationId: listHelms parameters: - $ref: '#/components/parameters/environmentId' - $ref: '#/paths/~1environment~1%7BenvironmentId%7D~1job/get/parameters/1' tags: - Helms responses: '200': description: List helms content: application/json: schema: $ref: '#/components/schemas/HelmResponseList' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' post: summary: Create a helm operationId: createHelm parameters: - $ref: '#/components/parameters/environmentId' tags: - Helms 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 /environment/{environmentId}/helmDefaultValues: post: summary: Get helm default values operationId: createHelmDefaultValues parameters: - $ref: '#/components/parameters/environmentId' tags: - Helms requestBody: content: application/json: schema: $ref: '#/components/schemas/HelmDefaultValuesRequest' responses: '201': description: helm values content: text/plain: schema: type: string '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' /environment/{environmentId}/helm/status: get: summary: List all environment helm statuses description: Returns a list of helms with only their id and status. operationId: getEnvironmentHelmStatus parameters: - $ref: '#/components/parameters/environmentId' tags: - Helms responses: '200': description: Get status content: application/json: schema: $ref: '#/components/schemas/ReferenceObjectStatusResponseList' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' /helm/{helmId}/clone: post: summary: Clone helm description: This will create a new helm with the same configuration on the targeted environment Id. operationId: cloneHelm parameters: - $ref: '#/components/parameters/helmId' tags: - Helms requestBody: content: application/json: schema: $ref: '#/components/schemas/CloneServiceRequest' responses: '202': description: Helm clone has been requested content: application/json: schema: $ref: '#/components/schemas/HelmResponse' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '409': description: Operation is in progress components: schemas: ReferenceObject: type: object required: - id properties: id: type: string format: uuid readOnly: true 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 HelmPortProtocolEnum: type: string default: HTTP enum: - HTTP - GRPC GitProviderEnum: type: string enum: - BITBUCKET - GITHUB - GITLAB HelmKeyValues: type: array description: 'The input is in json array format: [ [$KEY,$VALUE], [...] ]' items: type: array items: type: string HelmPortResponseWithServiceName: allOf: - $ref: '#/components/schemas/HelmPortResponseBase' - type: object required: - service_name properties: service_name: type: string 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 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. \nIf enabled, a preview environment will be automatically cloned when `/preview` endpoint is called or when a new commit is updated.\nIf not specified, it takes the value of the `auto_preview` property from the associated environment.\n" 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 HelmAdvancedSettings: type: object properties: deployment.custom_domain_check_enabled: type: boolean description: disable custom domain check when deploying a helm network.ingress.proxy_body_size_mb: type: integer network.ingress.force_ssl_redirect: type: boolean x-stoplight: id: 6tcwjiqqo99ii 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.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 ' 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. 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: '' CloneServiceRequest: type: object required: - name - environment_id properties: name: type: string environment_id: type: string format: uuid ServiceTypeEnum: type: string x-stoplight: id: d66063cd29913 description: type of the service (application, database, job, ...) enum: - APPLICATION - DATABASE - CONTAINER - JOB - HELM - TERRAFORM - ARGOCD_APP ReferenceObjectStatusResponseList: type: object properties: results: type: array items: $ref: '#/components/schemas/ReferenceObjectStatus' StepMetricStatusEnum: type: string enum: - SUCCESS - ERROR - CANCEL - SKIP description: 'The status of completion for the step: - SUCCESS: The step completed successfully. - ERROR: The step completed with an error. - CANCEL: The step was canceled. - SKIP: The step was skipped because it was not necessary. ' ServiceSubActionEnum: type: string default: NONE enum: - NONE - TERRAFORM_PLAN_ONLY - TERRAFORM_PLAN_AND_APPLY - TERRAFORM_DESTROY - TERRAFORM_FORCE_UNLOCK_STATE - TERRAFORM_MIGRATE_STATE HelmSourceGitResponse: title: HelmSourceGitResponse x-stoplight: id: lsxautcdafty6 type: object required: - git_repository properties: git_repository: $ref: '#/components/schemas/ApplicationGitRepository' 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: '' ServiceStepMetric: type: object properties: step_name: $ref: '#/components/schemas/ServiceStepMetricNameEnum' status: $ref: '#/components/schemas/StepMetricStatusEnum' duration_sec: description: The duration of the step in seconds. type: integer HelmDefaultValuesRequest: allOf: - type: object required: - source properties: 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 ServiceDeploymentStatusEnum: type: string enum: - NEVER_DEPLOYED - OUT_OF_DATE - UP_TO_DATE ServiceStepMetricNameEnum: type: string enum: - REGISTRY_CREATE_REPOSITORY - GIT_CLONE - BUILD_QUEUEING - BUILD - DEPLOYMENT_QUEUEING - DEPLOYMENT - ROUTER_DEPLOYMENT - MIRROR_IMAGE - EXECUTING description: "The name of the deployment step at the service level:\n- REGISTRY_CREATE_REPOSITORY: The step to create the repository in the registry.\n- GIT_CLONE: The step to clone the source code repository. \n- BUILD_QUEUEING: The queuing time preceding the actual building step.\n- BUILD: The step to build the source code.\n- DEPLOYMENT_QUEUEING: The queuing time preceding the actual deployment step.\n- DEPLOYMENT: The step to deploy the service. \n- ROUTER_DEPLOYMENT: The step to deploy the router. \n- MIRROR_IMAGE: The step to mirror the image to the private registry.\n- EXECUTING: The step to execute a job or terraform apply.\n" 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 ServiceStepMetrics: type: object required: - total_duration_sec - total_computing_duration_sec - details properties: total_duration_sec: description: The total duration in seconds of the service deployment or null if the deployment is not completed. type: integer nullable: true total_computing_duration_sec: description: The total duration in seconds of the service deployment without queuing steps. type: integer details: description: A list of metrics for deployment steps of the service. type: array items: $ref: '#/components/schemas/ServiceStepMetric' ServiceActionEnum: type: string enum: - DEPLOY - DELETE - RESTART - STOP - UNKNOWN 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' HelmResponseList: type: object properties: results: type: array items: $ref: '#/components/schemas/HelmResponse' 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. \nIf enabled, a preview environment will be automatically cloned when `/preview` endpoint is called. \nIf not specified, it takes the value of the `auto_preview` property from the associated environment.\n" 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: '#/components/schemas/HelmPortResponseWithServiceName' SERVICE_SELECTORS: '#/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' ReferenceObjectStatus: allOf: - $ref: '#/components/schemas/ReferenceObject' - $ref: '#/components/schemas/Status' 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 StateEnum: type: string enum: - BUILDING - BUILD_ERROR - CANCELED - CANCELING - DELETED - DELETE_ERROR - DELETE_QUEUED - DELETING - DEPLOYED - DEPLOYING - DEPLOYMENT_ERROR - DEPLOYMENT_QUEUED - EXECUTING - QUEUED - READY - RECAP - RESTARTED - RESTARTING - RESTART_ERROR - RESTART_QUEUED - STOPPED - STOPPING - STOP_ERROR - STOP_QUEUED - UNAVAILABLE - WAITING_DELETING - WAITING_RESTARTING - WAITING_RUNNING - WAITING_STOPPING HelmPortResponseWithServiceSelectors: allOf: - $ref: '#/components/schemas/HelmPortResponseBase' - type: object required: - service_selectors properties: service_selectors: type: array items: $ref: '#/components/schemas/KubernetesSelector' Status: type: object required: - id - state - service_deployment_status - status_details - is_part_last_deployment - deployment_requests_count - deployment_request_id properties: id: type: string format: uuid state: $ref: '#/components/schemas/StateEnum' service_deployment_status: $ref: '#/components/schemas/ServiceDeploymentStatusEnum' last_deployment_date: type: string format: date-time is_part_last_deployment: type: boolean steps: $ref: '#/components/schemas/ServiceStepMetrics' execution_id: type: string x-stoplight: id: 3o9tz4272s2ct status_details: $ref: '#/components/schemas/StatusDetails' deployment_request_id: type: string x-stoplight: id: bepixrb7tyzme format: uuid nullable: true deployment_requests_count: type: integer x-stoplight: id: crku532vt3v4p ServiceActionStatusEnum: type: string enum: - QUEUED - ONGOING - SUCCESS - ERROR - EXECUTING - CANCELED - CANCELING - NEVER 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 StatusDetails: type: object required: - action - status - sub_action properties: action: $ref: '#/components/schemas/ServiceActionEnum' status: $ref: '#/components/schemas/ServiceActionStatusEnum' sub_action: $ref: '#/components/schemas/ServiceSubActionEnum' parameters: environmentId: name: environmentId in: path description: Environment ID required: true schema: type: string format: uuid helmId: name: helmId in: path description: Helm ID required: true schema: type: string format: uuid responses: '400': description: Bad request '403': description: Access forbidden '404': description: Resource not found '401': description: Access token is missing or invalid 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