Skip to main content
POST
/
environment
/
{environmentId}
/
terraform
Create a terraform
curl --request POST \
  --url https://api.qovery.com/environment/{environmentId}/terraform \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "auto_deploy_config": {
    "auto_deploy": true,
    "terraform_action": "DEFAULT"
  },
  "terraform_files_source": {},
  "terraform_variables_source": {
    "tf_var_file_paths": [
      "<string>"
    ],
    "tf_vars": [
      {
        "key": "<string>",
        "value": "<string>",
        "secret": true
      }
    ]
  },
  "backend": {
    "kubernetes": {}
  },
  "engine": "TERRAFORM",
  "provider_version": {
    "explicit_version": "<string>",
    "read_from_terraform_block": true
  },
  "job_resources": {
    "cpu_milli": 123,
    "ram_mib": 123,
    "gpu": 1,
    "storage_gib": 123
  },
  "timeout_sec": 123,
  "icon_uri": "<string>",
  "use_cluster_credentials": true,
  "action_extra_arguments": {},
  "dockerfile_fragment": {
    "type": "file",
    "path": "/infra/terraform/custom-build.dockerfile"
  }
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "created_at": "2023-11-07T05:31:56Z",
  "name": "<string>",
  "timeout_sec": 600,
  "auto_deploy": true,
  "icon_uri": "<string>",
  "service_type": "APPLICATION",
  "terraform_variables_source": {
    "tf_var_file_paths": [
      "<string>"
    ],
    "tf_vars": [
      {
        "key": "<string>",
        "value": "<string>",
        "secret": true
      }
    ]
  },
  "engine": "TERRAFORM",
  "backend": {
    "kubernetes": {}
  },
  "provider_version": {
    "explicit_version": "<string>",
    "read_from_terraform_block": true
  },
  "job_resources": {
    "cpu_milli": 123,
    "ram_mib": 123,
    "gpu": 1,
    "storage_gib": 123
  },
  "environment": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "use_cluster_credentials": true,
  "action_extra_arguments": {},
  "updated_at": "2023-11-07T05:31:56Z",
  "description": "<string>",
  "auto_deploy_config": {
    "auto_deploy": true,
    "terraform_action": "DEFAULT"
  },
  "terraform_files_source": {
    "git": {
      "git_repository": {
        "provider": "BITBUCKET",
        "owner": "John Doe",
        "url": "<string>",
        "name": "simple-node-app",
        "has_access": true,
        "branch": "<string>",
        "root_path": "<string>",
        "deployed_commit_id": "<string>",
        "deployed_commit_date": "2023-11-07T05:31:56Z",
        "deployed_commit_contributor": "<string>",
        "deployed_commit_tag": "v1.0.1",
        "git_token_id": "<string>",
        "git_token_name": "<string>"
      }
    }
  },
  "dockerfile_fragment": {
    "type": "file",
    "path": "/infra/terraform/custom-build.dockerfile"
  }
}

Documentation Index

Fetch the complete documentation index at: https://qovery-docs-ai-use-cases-highlight.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

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" '

Path Parameters

environmentId
string<uuid>
required

Body

application/json
name
string
required
description
string
required
auto_deploy_config
TerraformAutoDeployConfig · object
required
terraform_files_source
object
required
terraform_variables_source
TerraformVariablesSourceRequest · object
required
backend
object
required

Configuration for Terraform backend - exactly one backend type must be specified

engine
enum<string>
required
Available options:
TERRAFORM,
OPEN_TOFU
provider_version
TerraformProviderVersion · object
required
job_resources
TerraformRequestJobResources · object
required
timeout_sec
integer
icon_uri
string<uri>
use_cluster_credentials
boolean
action_extra_arguments
object

The key represent the action command name i.e: "plan" The value represent the extra arguments to pass to this command

i.e: {"apply", ["-lock=false"]} is going to prepend -lock=false to terraform apply commands

dockerfile_fragment
DockerfileFragmentFile · object

Custom Dockerfile fragment to inject during build. Optional field. When null, no custom fragment is injected.

Response

Create terraform

A Terraform service

id
string<uuid>
required
read-only
created_at
string<date-time>
required
read-only
name
string
required

name is case insensitive

timeout_sec
integer
default:600
required
Required range: x >= 0
auto_deploy
boolean
required
icon_uri
string<uri>
required

Icon URI representing the terraform service.

service_type
enum<string>
required

type of the service (application, database, job, ...)

Available options:
APPLICATION,
DATABASE,
CONTAINER,
JOB,
HELM,
TERRAFORM,
ARGOCD_APP
terraform_variables_source
TerraformVariablesSourceResponse · object
required
engine
enum<string>
required
Available options:
TERRAFORM,
OPEN_TOFU
backend
object
required

Configuration for Terraform backend - exactly one backend type must be specified

provider_version
TerraformProviderVersion · object
required
job_resources
TerraformJobResourcesResponse · object
required
environment
object
required
use_cluster_credentials
boolean
required
action_extra_arguments
object
required

The key represent the action command name i.e: "plan" The value represent the extra arguments to pass to this command

i.e: {"apply", ["-lock=false"]} is going to prepend -lock=false to terraform apply commands

updated_at
string<date-time>
read-only
description
string
auto_deploy_config
TerraformAutoDeployConfig · object
terraform_files_source
TerraformFilesSource · object
dockerfile_fragment
DockerfileFragmentFile · object

Custom Dockerfile fragment to inject during build. When null, no custom fragment is injected.