W3cubDocs

/Terraform

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 = "${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 of grpc_config and protoc_output 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. 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. * protoc_output: (Deprecated) The full contents of the Service Descriptor File generated by protoc. This should be a compiled .pb file. Use protoc_output_base64 instead to prevent a permanent diff from the statefile's munging of non-UTF8 bytes. * 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_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.

Method Object Structure

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

Endpoint Object Structure

  • name: The simple name of the endpoint as described in the config.
  • address: The FQDN of the endpoint as described in the config.

© 2018 HashiCorpLicensed under the MPL 2.0 License.
https://www.terraform.io/docs/providers/google/r/endpoints_service.html