» google_endpoints_service
This resource creates and rolls out a Cloud Endpoints service using OpenAPI or gRPC. View the relevant docs for OpenAPI and gRPC.
» Example Usage
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 = "${base64encode(file("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.
» Argument Reference
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 ofgrpc_configandprotoc_output_base64must be specified. -
grpc_config: (Optional) The full text of the Service Config YAML file (Example located here). If provided, must also provideprotoc_output_base64.open_apiconfig 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.
» Attributes Reference
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.
» API Object Structure
-
name: The FQDN of the API as described in the provided config. -
syntax:SYNTAX_PROTO2orSYNTAX_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.
» Method Object Structure
-
name: The simple name of this method as described in the provided config. -
syntax:SYNTAX_PROTO2orSYNTAX_PROTO3. -
request_type: The type URL for the request to this API. -
response_type: The type URL for the response from this API.