cloud-foundation-fabric/modules/endpoints
Ludovico Magnocavallo 6941313c7d
Factories refactor (#1843)
* factories refactor doc

* Adds file schema and filesystem organization

* Update 20231106-factories.md

* move factories out of blueprints and create new factories  README

* align factory in billing-account module

* align factory in dataplex-datascan module

* align factory in billing-account module

* align factory in net-firewall-policy module

* align factory in dns-response-policy module

* align factory in net-vpc-firewall module

* align factory in net-vpc module

* align factory variable names in FAST

* remove decentralized firewall blueprint

* bump terraform version

* bump module versions

* update top-level READMEs

* move project factory to modules

* fix variable names and tests

* tfdoc

* remove changelog link

* add project factory to top-level README

* fix cludrun eventarc diff

* fix README

* fix cludrun eventarc diff

---------

Co-authored-by: Simone Ruffilli <sruffilli@google.com>
2024-02-26 10:16:52 +00:00
..
README.md Several updates 2023-05-13 23:51:46 -04:00
main.tf Copyright bump (#410) 2022-01-01 15:52:31 +01:00
outputs.tf Copyright bump (#410) 2022-01-01 15:52:31 +01:00
variables.tf Several updates 2023-05-13 23:51:46 -04:00
versions.tf Factories refactor (#1843) 2024-02-26 10:16:52 +00:00

README.md

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..