robot-contrib a9eaa1d528 Update contrib/libs/googleapis-common-protos to 1.63.0 7 months ago
..
README.md 06e5c21a83 fix ya.make 2 years ago
annotations.proto 574b792877 Reimport boost/array as a separate project 2 years ago
auth.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
backend.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
billing.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
client.proto a9eaa1d528 Update contrib/libs/googleapis-common-protos to 1.63.0 7 months ago
config_change.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
consumer.proto 574b792877 Reimport boost/array as a separate project 2 years ago
context.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
control.proto 284fd8a4a9 Update contrib/libs/googleapis-common-protos to 1.60.0 1 year ago
distribution.proto c18822fbad Update contrib/libs/googleapis-common-protos to 1.59.1 1 year ago
documentation.proto a9eaa1d528 Update contrib/libs/googleapis-common-protos to 1.63.0 7 months ago
endpoint.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
error_reason.proto a9eaa1d528 Update contrib/libs/googleapis-common-protos to 1.63.0 7 months ago
field_behavior.proto a9eaa1d528 Update contrib/libs/googleapis-common-protos to 1.63.0 7 months ago
field_info.proto a9eaa1d528 Update contrib/libs/googleapis-common-protos to 1.63.0 7 months ago
http.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
httpbody.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
label.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
launch_stage.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
log.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
logging.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
metric.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
monitored_resource.proto a9eaa1d528 Update contrib/libs/googleapis-common-protos to 1.63.0 7 months ago
monitoring.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
policy.proto 284fd8a4a9 Update contrib/libs/googleapis-common-protos to 1.60.0 1 year ago
quota.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
resource.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
routing.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
service.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
source_info.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
system_parameter.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
usage.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago
visibility.proto d66e99ee21 Update contrib/libs/googleapis-common-protos to 1.59.0 1 year ago

README.md

API Protos

This folder contains the schema of the configuration model for Google's internal API serving platform, which handles routing, quotas, monitoring, logging, and the like.

Google refers to this configuration colloquially as the "service config", and the service.proto file in this directory is the entry point for understanding these.

Using these protos

To be honest, we probably open sourced way too much of this (basically by accident). There are a couple files in here you are most likely to be interested in: http.proto, documentation.proto, auth.proto, and annotations.proto.

HTTP and REST

The http.proto file contains the Http message (which then is wrapped in an annotation in annotations.proto), which provides a specification for REST endpoints and verbs (GET, POST, etc.) on RPC methods. We recommend use of this annotation for describing the relationship between RPCs and REST endpoints.

Documentation

The documentation.proto file contains a Documentation message which provides a mechanism to fully describe an API, allowing a tool to build structured documentation artifacts.

Authentication

The auth.proto file contains descriptions of both authentication rules and authenticaion providers, allowing you to describe what your services expect and accept from clients.

api-compiler

Google provides a tool called api-compiler, which is a tool that accepts a protocol buffer descriptor and a YAML file specifying some of the options described in service.proto, and outputs a much more thorough Service descriptor based on the information it infers from the protos themselves.