{{range .Files}} {{$file_name := .Name}} ## {{.Name}} {{.Description}} ### Services {{range .Services}} #### `{{.Name}}` {{.Description}} | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| {{range .Methods -}} | {{.Name}} | [{{.RequestLongType}}](#{{.RequestFullType}}){{if .RequestStreaming}} stream{{end}} | [{{.ResponseLongType}}](#{{.ResponseFullType}}){{if .ResponseStreaming}} stream{{end}} | {{nobr .Description}} | {{end}} {{end}} ### Messsages {{range .Messages}} #### `{{.LongName}}` {{.Description}} {{if .HasFields}} | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | {{range .Fields -}} | {{.Name}} | [{{.LongType}}](#{{.FullType}}) | {{.Label}} | {{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}} | {{end}} {{end}} {{if .HasExtensions}} | Extension | Type | Base | Number | Description | | --------- | ---- | ---- | ------ | ----------- | {{range .Extensions -}} | {{.Name}} | {{.LongType}} | {{.ContainingLongType}} | {{.Number}} | {{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}} {{if .HasExtensions}} #### File-level Extensions | Extension | Type | Base | Number | Description | | --------- | ---- | ---- | ------ | ----------- | {{range .Extensions -}} | {{.Name}} | {{.LongType}} | {{.ContainingLongType}} | {{.Number}} | {{nobr .Description}}{{if .DefaultValue}} Default: `{{.DefaultValue}}`{{end}} | {{end}} {{end}} {{end}}