| 
									
										
										
										
											2017-02-14 22:20:20 -05:00
										 |  |  | syntax = "proto3";
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | package coredns.dns;
 | 
					
						
							|  |  |  | option go_package = "pb";
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | message DnsPacket {
 | 
					
						
							|  |  |  | 	bytes msg = 1;
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | service DnsService {
 | 
					
						
							|  |  |  | 	rpc Query (DnsPacket) returns (DnsPacket);
 | 
					
						
							| 
									
										
										
										
											2018-06-27 07:45:32 -07:00
										 |  |  | 	rpc Watch (stream WatchRequest) returns (stream WatchResponse);
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | message WatchRequest {
 | 
					
						
							|  |  |  |   // request_union is a request to either create a new watcher or cancel an existing watcher.
 | 
					
						
							|  |  |  |   oneof request_union {
 | 
					
						
							|  |  |  |     WatchCreateRequest create_request = 1;
 | 
					
						
							|  |  |  |     WatchCancelRequest cancel_request = 2;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | message WatchCreateRequest {
 | 
					
						
							|  |  |  |   DnsPacket query = 1;
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | message WatchCancelRequest {
 | 
					
						
							|  |  |  |   // watch_id is the watcher id to cancel
 | 
					
						
							|  |  |  |   int64 watch_id = 1;
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | message WatchResponse {
 | 
					
						
							|  |  |  | 	// watch_id is the ID of the watcher that corresponds to the response.
 | 
					
						
							|  |  |  | 	int64 watch_id = 1;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// created is set to true if the response is for a create watch request.
 | 
					
						
							|  |  |  | 	// The client should record the watch_id and expect to receive DNS replies
 | 
					
						
							|  |  |  | 	// from the same stream.
 | 
					
						
							|  |  |  | 	// All replies sent to the created watcher will attach with the same watch_id.
 | 
					
						
							|  |  |  | 	bool created = 2;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// canceled is set to true if the response is for a cancel watch request.
 | 
					
						
							|  |  |  | 	// No further events will be sent to the canceled watcher.
 | 
					
						
							|  |  |  | 	bool canceled = 3;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	string qname = 4;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	string err = 5;
 | 
					
						
							| 
									
										
										
										
											2017-02-14 22:20:20 -05:00
										 |  |  | }
 |