This resource creates and rolls out a Cloud Endpoints service using OpenAPI or gRPC. View the relevant docs for [OpenAPI](https://cloud.google.com/endpoints/docs/openapi/) and [gRPC](https://cloud.google.com/endpoints/docs/grpc/).
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](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md). 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](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/endpoints/bookstore-grpc/api_config.yaml)). 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.