# Gemini Enterprise Agent Platform — Terraform Scaffold Provisions the infrastructure needed to use the Gemini Enterprise Agent Platform (Vertex AI Agent Engine) on an existing GCP project: required APIs, service accounts, and IAM bindings. > **AI-generated code.** This module was scaffolded with AI assistance. Review all resources and IAM bindings before applying to a production project. ## Prerequisites - Terraform >= 1.5.0 - An existing GCP project - `gcloud` CLI authenticated with permissions to enable APIs and manage IAM ## Usage ```bash cp terraform.tfvars.example terraform.tfvars # edit terraform.tfvars — set your project_id terraform init terraform plan terraform apply ``` ## Variables | Name | Required | Default | Description | |---|---|---|---| | `project_id` | yes | — | Existing GCP project ID | | `prefix` | no | `gemini` | Short prefix applied to all resource names | ## Outputs | Name | Description | |---|---| | `project_id` | GCP project ID | | `agent_sa_email` | Runtime service account email (for apps) | | `code_assist_sa_email` | Code Assist enterprise SA email | ## What gets created - **7 GCP APIs** enabled (`aiplatform`, `cloudaicompanion`, `discoveryengine`, `dialogflow`, `secretmanager`, `iam`, `cloudresourcemanager`) - **2 service accounts** — one for app runtime, one for IDE enterprise config - **4 project IAM bindings** ## Setting up credentials Use Application Default Credentials: ```bash gcloud auth application-default login gcloud config set project ``` For workloads running on GCP (Cloud Run, GKE, Compute Engine), attach the service account to the resource — no credentials file needed. ## Granting developer access to Gemini Code Assist ```bash # Single user gcloud projects add-iam-policy-binding \ --member="user:" \ --role="roles/cloudaicompanion.user" # Create a Google Group (recommended for teams) gcloud identity groups create devs@ \ --organization= \ --display-name="Gemini Developers" \ --description="Users with access to Gemini Code Assist" # Add a member to the group gcloud identity groups memberships add \ --group-email=devs@ \ --member-email= # Grant the group access gcloud projects add-iam-policy-binding \ --member="group:devs@" \ --role="roles/cloudaicompanion.user" ``` ## VS Code setup 1. Install the **Gemini Code Assist** extension from the VS Code Marketplace 2. Sign in with a Google account that has `roles/cloudaicompanion.user` on the project 3. In Settings, set **Cloud AI Companion: Project** to your `project_id` ## Creating a GCP project If you don't have a project yet: ```bash # List available folders to find your folder ID gcloud resource-manager folders list --organization= # Create a new project inside a folder gcloud projects create \ --name="" \ --folder= # Link a billing account (required before enabling APIs) gcloud billing projects link \ --billing-account= # Verify gcloud projects describe ``` To find your billing account ID: ```bash gcloud billing accounts list ``` ## License [MIT](LICENSE) © 2026 Slawomir Koszewski