# Protocol Documentation ## Table of Contents {{range .Files}} {{$file_name := .Name}}- [{{.Name}}](#{{.Name}}) {{if .Services}} - Services {{range .Services}} - [{{.Name}}](#{{.FullName}}) {{end}}{{end}} {{if .Messages}} - Messages {{range .Messages}} - [{{.LongName}}](#{{.FullName}}) {{end}}{{end}} {{end}} - [Scalar Value Types](#scalar-value-types) {{range .Files}} {{$file_name := .Name}}
## {{.Name}} {{.Description}} {{range .Services}} ### Service "{{.FullName}}" {{.Description}} ``` {{range .Methods -}} rpc {{.Name}}({{if .RequestStreaming}}stream {{end}}{{.RequestLongType}}) returns ({{if .ResponseStreaming}}stream {{end}}{{.ResponseLongType}}); {{end}} ``` {{range .Methods -}} #### Method {{.Name}} {{.Description}} | Name | Input | Output | | ---- | ----- | ------ | | {{.Name}} | [{{.RequestLongType}}](#{{.RequestFullType}}) | [{{.ResponseLongType}}](#{{.ResponseFullType}}) | {{end}}{{end}} {{range .Messages}} ### Message {{.LongName}} {{.Description}} {{if .HasFields}} | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | {{range .Fields -}} | {{.Name}} | [{{.LongType}}](#{{.FullType}}) | {{.Label}} | {{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}} | {{end}}{{end}} {{end}} {{range .Enums}} ### {{.LongName}} {{.Description}} | Name | Number | Description | | ---- | ------ | ----------- | {{range .Values -}} | {{.Name}} | {{.Number}} | {{nobr .Description}} | {{end}} {{end}} {{end}} ## Scalar Value Types | .proto Type | Notes | C++ Type | Java Type | Python Type | | ----------- | ----- | -------- | --------- | ----------- | {{range .Scalars -}} | {{.ProtoType}} | {{.Notes}} | {{.CppType}} | {{.JavaType}} | {{.PythonType}} | {{end}}