* feat(agent-engine): add support for container and custom image specs - Add container_config to deployment_files. - Add image_spec with build_args to source_config. - Make agent_framework optional and document supported values. - Implement dynamic specs for container and source deployments. - Add examples and automated tests for new deployment types. * chore: update Google provider version to 7.28.0 across modules Mechanical update of versions.tf and versions.tofu files using tools/versions.py. * feat(agent-engine): refactor for container deployments and API alignment - Group deployment settings under 'deployment_config' (renamed from 'deployment_files'). - Support container-based deployments via 'container_config' and 'image_spec'. - Refactor 'source_files_config' (renamed from 'source_config') to include mutually exclusive 'python_spec' and 'image_spec'. - Support 'developer_connect_config' as a source code type. - Group engine settings (framework, env, secrets) under 'agent_engine_config'. - Add support for 'memory_bank_config' persistent memory. - Overhaul reasoning engine resources with dynamic blocks to match provider schema. - Update all documentation examples, add TOC, and refresh test inventories. * Update dynamic python_spec block and related example yamls * Ignore changes setting for developer_connect_source under lifecycle management * fixing review comments for `try` and default path for `source_path` --------- Co-authored-by: Hemanand <hemr@google.com> Co-authored-by: Julio Castillo <jccb@google.com>
API Gateway
This module allows creating an API with its associated API config and API gateway. It also allows you grant IAM roles on the created resources.
- Examples
- Basic example
- Use existing service account
- Create service account
- Recipes
- Variables
- Outputs
Examples
Basic example
module "gateway" {
source = "./fabric/modules/api-gateway"
project_id = "my-project"
api_id = "api"
region = "europe-west1"
spec = <<EOT
# The OpenAPI spec contents
# ...
EOT
}
# tftest modules=1 resources=4 inventory=basic.yaml
Use existing service account
module "gateway" {
source = "./fabric/modules/api-gateway"
project_id = "my-project"
api_id = "api"
region = "europe-west1"
service_account_email = "sa@my-project.iam.gserviceaccount.com"
iam = {
"roles/apigateway.admin" = ["user:user@example.com"]
}
spec = <<EOT
# The OpenAPI spec contents
# ...
EOT
}
# tftest modules=1 resources=7 inventory=existing-sa.yaml
Create service account
module "gateway" {
source = "./fabric/modules/api-gateway"
project_id = "my-project"
api_id = "api"
region = "europe-west1"
service_account_create = true
iam = {
"roles/apigateway.admin" = ["user:mirene@google.com"]
"roles/apigateway.viewer" = ["user:mirene@google.com"]
}
spec = <<EOT
# The OpenAPI spec contents
# ...
EOT
}
# tftest modules=1 resources=11 inventory=create-sa.yaml
Recipes
Variables
| name | description | type | required | default |
|---|---|---|---|---|
| api_id | API identifier. | string |
✓ | |
| project_id | Project identifier. | string |
✓ | |
| region | Region. | string |
✓ | |
| spec | String with the contents of the OpenAPI spec. | string |
✓ | |
| iam | IAM bindings for the API in {ROLE => [MEMBERS]} format. | map(list(string)) |
null |
|
| labels | Map of labels. | map(string) |
null |
|
| service_account_create | Flag indicating whether a service account needs to be created. | bool |
false |
|
| service_account_email | Service account for creating API configs. | string |
null |
Outputs
| name | description | sensitive |
|---|---|---|
| api | API. | |
| api_config | API configs. | |
| api_config_id | The identifiers of the API configs. | |
| api_id | API identifier. | |
| default_hostname | The default host names of the API gateway. | |
| gateway | API gateways. | |
| gateway_id | The identifiers of the API gateways. | |
| service_account | Service account resource. | |
| service_account_email | The service account for creating API configs. | |
| service_account_iam_email | The service account for creating API configs. |