app_env_keystring
Environment variable name for the connected application URL. Default: "API_URL". Only relevant when app_service_name is set.
app_service_namestring
Name of an EXISTING Aiven Application service in the same project whose public URL should be injected as an environment variable. The target service must be in RUNNING state with a public URL available. Use aiven_service_get to verify before deploying.
branchstringобязательный
Git branch to deploy from (required — no default). IMPORTANT: NEVER assume the branch — always ask the user to confirm which branch to deploy from.
build_pathstring
Path within the repository where the Dockerfile is located. Default: "." (repository root). Use a subdirectory if the Dockerfile is not at the root (e.g. "./backend").
cloudstring
Cloud region for deployment. Always confirm with the user before proceeding unless they have already explicitly specified a region. If service_integrations are provided, call aiven_service_get on each integrated service first and check their cloud_name: if all share the same cloud, propose that cloud and ask the user to confirm; if they differ, list the options and ask the user to choose. If there are no integrated services, ask the user which cloud region to deploy into.
environment_variablesobject[]
Additional environment variables to inject into the running container. Do NOT include credentials for services listed in service_integrations — those are auto-injected by the platform. Common additions: NODE_ENV=production, PORT (matching the port param).
planstring
Service plan. Default: "startup-50-1024" (0.5 vCPU, 1024 MB RAM). Use aiven_service_type_plans with service_type="application" to list available plans.
portintegerобязательный
The port the application listens on inside the container. This MUST match the port in the Dockerfile EXPOSE directive AND the port the app binds to in code. The app MUST listen on 0.0.0.0 (not 127.0.0.1 or localhost). Common values: 3000, 8000, 8080.
port_namestring
Logical name for the port. Default: "default". Rarely needs changing.
projectstringобязательный
Aiven project name — use aiven_project_list to get valid names
project_vpc_idstring
VPC to deploy this application into. Only set when the user explicitly asks to deploy into a VPC. Call aiven_project_vpc_list to list available VPCs, confirm the choice with the user, then pass the project_vpc_id here. If omitted, the deploy sends project_vpc_id: null so the app is not auto-placed into a project VPC.
reasoningstringобязательный
Brief explanation of why you are making this call. Used for audit logs and debugging. Do NOT include any PII or secrets (emails, names, credentials, tokens, connection URIs, IPs, or customer/project identifiers); describe intent only. Max 2000 characters.
remote_repository_idstring
Repository ID within the VCS integration. Auto-resolved by matching source_url in aiven_vcs_integration_repository_list — do NOT ask the user for this value.
repository_urlstringобязательный
Git repository HTTPS URL (e.g. https://github.com/user/repo). IMPORTANT: NEVER assume the repository URL — always ask the user to confirm or provide it. You may push code for the user, but ALWAYS ask for confirmation before pushing.
service_integrationsobject[]
An ARRAY of integrations; each element is ONE object selected by its service_type ("pg", "valkey", "opensearch", or "kafka") — never a single bare object. Credentials are auto-injected as env vars; set env var names to match what your app reads. Each service must already exist in the project and be RUNNING.
Example:
service_integrations: [
{ service_type: "pg", service_name: "my-pg", env_key: "DATABASE_URL" },
{ service_type: "kafka", service_name: "my-kafka", bootstrap_servers_env: "KAFKA_BROKERS" }
]
service_namestringобязательный
Unique name for this application service within the project. Use lowercase letters, numbers, and dashes only (e.g. "my-todo-app").
vcs_integration_idstring
VCS integration ID for private repository access. Auto-resolved via aiven_vcs_integration_list + aiven_vcs_integration_repository_list — do NOT ask the user for this value.