This resource creates and rolls out a Cloud Endpoints service using OpenAPI or gRPC. View the relevant docs for OpenAPI and gRPC.
resource "google_endpoints_service" "openapi_service" {
service_name = "api-name.endpoints.project-id.cloud.goog"
project = "project-id"
openapi_config = file("openapi_spec.yml")
}
resource "google_endpoints_service" "grpc_service" {
service_name = "api-name.endpoints.project-id.cloud.goog"
project = "project-id"
grpc_config = file("service_spec.yml")
protoc_output_base64 = filebase64("compiled_descriptor_file.pb")
}
The example in examples/endpoints_on_compute_engine
shows the API from the quickstart running on a Compute Engine VM and reachable through Cloud Endpoints, which may also be useful.
The following arguments are supported:
service_name
: (Required) The name of the service. Usually of the form $apiname.endpoints.$projectid.cloud.goog
.openapi_config
: (Optional) The full text of the OpenAPI YAML configuration as described here.
Either this, or both of grpc_config
and protoc_output_base64
must be specified.
grpc_config
: (Optional) The full text of the Service Config YAML file (Example located here).
If provided, must also provide protoc_output_base64
. open_api
config must not be provided.
protoc_output_base64
: (Optional) The full contents of the Service Descriptor File generated by protoc. This should be a compiled .pb file, base64-encoded.
project
: (Optional) The project ID that the service belongs to. If not provided, provider project is used.
In addition to the arguments, the following attributes are available:
config_id
: The autogenerated ID for the configuration that is rolled out as part of the creation of this resource. Must be provided to compute engine instances as a tag.
dns_address
: The address at which the service can be found - usually the same as the service name.
apis
: A list of API objects; structure is documented below.
endpoints
: A list of Endpoint objects; structure is documented below.
name
: The FQDN of the API as described in the provided config.syntax
: SYNTAX_PROTO2
or SYNTAX_PROTO3
.version
: A version string for this api. If specified, will have the form major-version.minor-version, e.g. 1.10
.methods
: A list of Method objects; structure is documented below.name
: The simple name of this method as described in the provided config.syntax
: SYNTAX_PROTO2
or SYNTAX_PROTO3
.request_type
: The type URL for the request to this API.response_type
: The type URL for the response from this API.name
: The simple name of the endpoint as described in the config.address
: The FQDN of the endpoint as described in the config.This resource does not support import.
This resource provides the following Timeouts configuration options: configuration options:
create
- Default is 10 minutes.update
- Default is 10 minutes.delete
- Default is 10 minutes.