Files
hunfabric/modules/endpoints
Hemanand eaa420534b Add agent engine BYOC support (#3885)
* 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>
2026-04-21 17:46:20 +00:00
..
2022-01-01 15:52:31 +01:00
2022-01-01 15:52:31 +01:00
2023-05-13 23:51:46 -04:00

Google Cloud Endpoints

This module allows simple management of 'Google Cloud Endpoints' services. It supports creating 'OpenAPI' or 'gRPC' endpoints.

Examples

OpenAPI

module "endpoint" {
  source         = "./fabric/modules/endpoints"
  project_id     = "my-project"
  service_name   = "YOUR-API.endpoints.YOUR-PROJECT-ID.cloud.goog"
  openapi_config = { "yaml_path" = "configs/endpoints/openapi.yaml" }
  iam = {
    "servicemanagement.serviceController" = [
      "serviceAccount:123456890-compute@developer.gserviceaccount.com"
    ]
  }
}
# tftest modules=1 resources=2 files=openapi inventory=simple.yaml
# tftest-file id=openapi path=configs/endpoints/openapi.yaml
swagger: "2.0"
info:
  description: "A simple Google Cloud Endpoints API example."
  title: "Endpoints Example"
  version: "1.0.0"
host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"

Here you can find an example of an openapi.yaml file. Once created the endpoint, remember to activate the service at project level.

Variables

name description type required default
openapi_config The configuration for an OpenAPI endopoint. Either this or grpc_config must be specified. object({…})
service_name The name of the service. Usually of the form '$apiname.endpoints.$projectid.cloud.goog'. string
grpc_config The configuration for a gRPC endpoint. Either this or openapi_config must be specified. object({…}) null
iam IAM bindings for topic in {ROLE => [MEMBERS]} format. map(list(string)) {}
project_id The project ID that the service belongs to. string null

Outputs

name description sensitive
endpoints A list of Endpoint objects.
endpoints_service The Endpoint service resource.
service_name The name of the service..