implement grpc gateway for http api
This commit is contained in:
		
							
								
								
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| [submodule "proto/googleapis"] | ||||
| 	path = proto/googleapis | ||||
| 	url = https://github.com/googleapis/googleapis.git | ||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @@ -14,7 +14,7 @@ DOCKER_IMG := gitea.libretechconsulting.com/rmcguire/ambient-local-exporter | ||||
| all: proto test build docker | ||||
|  | ||||
| proto: check_protoc $(API_DIR) | ||||
| 	protoc --proto_path=proto \ | ||||
| 	protoc --proto_path=proto --proto_path=proto/googleapis \ | ||||
| 		--go_out=$(API_DIR) --go_opt=paths=source_relative \ | ||||
| 		--go-grpc_out=$(API_DIR) --go-grpc_opt=paths=source_relative \ | ||||
| 		--grpc-gateway_out=$(API_DIR) --grpc-gateway_opt=paths=source_relative \ | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| // Code generated by protoc-gen-go. DO NOT EDIT. | ||||
| // versions: | ||||
| // 	protoc-gen-go v1.36.5 | ||||
| // 	protoc-gen-go v1.36.6 | ||||
| // 	protoc        v5.29.3 | ||||
| // source: weather/weather.proto | ||||
|  | ||||
| @@ -554,162 +554,86 @@ func (x *BatteryStatus) GetStatus() int32 { | ||||
|  | ||||
| var File_weather_weather_proto protoreflect.FileDescriptor | ||||
|  | ||||
| var file_weather_weather_proto_rawDesc = string([]byte{ | ||||
| 	0x0a, 0x15, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x2f, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, | ||||
| 	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, | ||||
| 	0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, | ||||
| 	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, | ||||
| 	0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6d, 0x0a, 0x11, 0x47, 0x65, 0x74, | ||||
| 	0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, | ||||
| 	0x0a, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, | ||||
| 	0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x47, | ||||
| 	0x65, 0x74, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x73, 0x52, 0x04, 0x6f, | ||||
| 	0x70, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, | ||||
| 	0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, | ||||
| 	0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, | ||||
| 	0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, | ||||
| 	0x3d, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, | ||||
| 	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, | ||||
| 	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, | ||||
| 	0x70, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x47, | ||||
| 	0x0a, 0x0f, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, | ||||
| 	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, | ||||
| 	0x74, 0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, | ||||
| 	0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, | ||||
| 	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x57, | ||||
| 	0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x74, | ||||
| 	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, | ||||
| 	0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, | ||||
| 	0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, | ||||
| 	0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, | ||||
| 	0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, | ||||
| 	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, | ||||
| 	0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xfe, 0x0c, 0x0a, | ||||
| 	0x0d, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x21, | ||||
| 	0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, | ||||
| 	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, | ||||
| 	0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, | ||||
| 	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, | ||||
| 	0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, | ||||
| 	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, | ||||
| 	0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x6f, 0x75, 0x74, 0x64, | ||||
| 	0x6f, 0x6f, 0x72, 0x5f, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x74, | ||||
| 	0x65, 0x6d, 0x70, 0x4f, 0x75, 0x74, 0x64, 0x6f, 0x6f, 0x72, 0x46, 0x88, 0x01, 0x01, 0x12, 0x27, | ||||
| 	0x0a, 0x0d, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x6f, 0x6f, 0x72, 0x5f, 0x66, 0x18, | ||||
| 	0x05, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x49, 0x6e, 0x64, | ||||
| 	0x6f, 0x6f, 0x72, 0x46, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x75, 0x6d, 0x69, 0x64, | ||||
| 	0x69, 0x74, 0x79, 0x5f, 0x6f, 0x75, 0x74, 0x64, 0x6f, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, | ||||
| 	0x05, 0x48, 0x02, 0x52, 0x0f, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x4f, 0x75, 0x74, | ||||
| 	0x64, 0x6f, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x68, 0x75, 0x6d, 0x69, 0x64, | ||||
| 	0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x6f, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, | ||||
| 	0x48, 0x03, 0x52, 0x0e, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x6f, | ||||
| 	0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x73, 0x70, | ||||
| 	0x65, 0x65, 0x64, 0x5f, 0x6d, 0x70, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x48, 0x04, 0x52, | ||||
| 	0x0c, 0x77, 0x69, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x4d, 0x70, 0x68, 0x88, 0x01, 0x01, | ||||
| 	0x12, 0x27, 0x0a, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x67, 0x75, 0x73, 0x74, 0x5f, 0x6d, 0x70, | ||||
| 	0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x48, 0x05, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x64, 0x47, | ||||
| 	0x75, 0x73, 0x74, 0x4d, 0x70, 0x68, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6d, 0x61, 0x78, | ||||
| 	0x5f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x5f, 0x67, 0x75, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, | ||||
| 	0x01, 0x48, 0x06, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x47, 0x75, 0x73, | ||||
| 	0x74, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x64, 0x69, 0x72, | ||||
| 	0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x07, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, | ||||
| 	0x72, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x64, 0x69, 0x72, | ||||
| 	0x5f, 0x61, 0x76, 0x67, 0x5f, 0x31, 0x30, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x08, | ||||
| 	0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, 0x72, 0x41, 0x76, 0x67, 0x31, 0x30, 0x6d, 0x88, | ||||
| 	0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x75, 0x76, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x09, | ||||
| 	0x52, 0x02, 0x75, 0x76, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x6f, 0x6c, 0x61, 0x72, | ||||
| 	0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, | ||||
| 	0x48, 0x0a, 0x52, 0x0e, 0x73, 0x6f, 0x6c, 0x61, 0x72, 0x52, 0x61, 0x64, 0x69, 0x61, 0x74, 0x69, | ||||
| 	0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x5f, | ||||
| 	0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x48, 0x0b, 0x52, | ||||
| 	0x0c, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x52, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x88, 0x01, 0x01, | ||||
| 	0x12, 0x27, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, | ||||
| 	0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x48, 0x0c, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, | ||||
| 	0x52, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x64, 0x61, 0x69, | ||||
| 	0x6c, 0x79, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, | ||||
| 	0x48, 0x0d, 0x52, 0x0b, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x52, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x88, | ||||
| 	0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x5f, 0x72, 0x61, 0x69, | ||||
| 	0x6e, 0x5f, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x48, 0x0e, 0x52, 0x0c, 0x77, 0x65, | ||||
| 	0x65, 0x6b, 0x6c, 0x79, 0x52, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, | ||||
| 	0x0f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, | ||||
| 	0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x48, 0x0f, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, | ||||
| 	0x79, 0x52, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x79, 0x65, | ||||
| 	0x61, 0x72, 0x6c, 0x79, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, | ||||
| 	0x28, 0x01, 0x48, 0x10, 0x52, 0x0c, 0x79, 0x65, 0x61, 0x72, 0x6c, 0x79, 0x52, 0x61, 0x69, 0x6e, | ||||
| 	0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, | ||||
| 	0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x48, 0x11, 0x52, 0x0b, | ||||
| 	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3c, | ||||
| 	0x0a, 0x09, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, | ||||
| 	0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x74, | ||||
| 	0x68, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, | ||||
| 	0x73, 0x52, 0x09, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x11, | ||||
| 	0x62, 0x61, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, | ||||
| 	0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x01, 0x48, 0x12, 0x52, 0x0f, 0x62, 0x61, 0x72, 0x6f, 0x6d, | ||||
| 	0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, | ||||
| 	0x11, 0x62, 0x61, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, | ||||
| 	0x69, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x01, 0x48, 0x13, 0x52, 0x0f, 0x62, 0x61, 0x72, 0x6f, | ||||
| 	0x6d, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, | ||||
| 	0x0a, 0x0b, 0x64, 0x65, 0x77, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x18, 0x19, 0x20, | ||||
| 	0x01, 0x28, 0x01, 0x48, 0x14, 0x52, 0x09, 0x64, 0x65, 0x77, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x46, | ||||
| 	0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x63, 0x68, 0x69, 0x6c, | ||||
| 	0x6c, 0x5f, 0x66, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x01, 0x48, 0x15, 0x52, 0x0a, 0x77, 0x69, 0x6e, | ||||
| 	0x64, 0x43, 0x68, 0x69, 0x6c, 0x6c, 0x46, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x15, 0x74, 0x65, | ||||
| 	0x6d, 0x70, 0x5f, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, | ||||
| 	0x6f, 0x72, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x6d, 0x62, 0x69, | ||||
| 	0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x6d, 0x70, | ||||
| 	0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x13, | ||||
| 	0x74, 0x65, 0x6d, 0x70, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, | ||||
| 	0x6f, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, | ||||
| 	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, | ||||
| 	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, | ||||
| 	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, | ||||
| 	0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, | ||||
| 	0x65, 0x6d, 0x70, 0x5f, 0x6f, 0x75, 0x74, 0x64, 0x6f, 0x6f, 0x72, 0x5f, 0x66, 0x42, 0x10, 0x0a, | ||||
| 	0x0e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x6f, 0x6f, 0x72, 0x5f, 0x66, 0x42, | ||||
| 	0x13, 0x0a, 0x11, 0x5f, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x75, 0x74, | ||||
| 	0x64, 0x6f, 0x6f, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, | ||||
| 	0x79, 0x5f, 0x69, 0x6e, 0x64, 0x6f, 0x6f, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x77, 0x69, 0x6e, | ||||
| 	0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x6d, 0x70, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, | ||||
| 	0x77, 0x69, 0x6e, 0x64, 0x5f, 0x67, 0x75, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x68, 0x42, 0x11, 0x0a, | ||||
| 	0x0f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x5f, 0x67, 0x75, 0x73, 0x74, | ||||
| 	0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x64, 0x69, 0x72, 0x42, 0x13, 0x0a, | ||||
| 	0x11, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x64, 0x69, 0x72, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x31, | ||||
| 	0x30, 0x6d, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x75, 0x76, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x6f, | ||||
| 	0x6c, 0x61, 0x72, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x11, 0x0a, | ||||
| 	0x0f, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, | ||||
| 	0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, | ||||
| 	0x69, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x5f, 0x72, 0x61, 0x69, | ||||
| 	0x6e, 0x5f, 0x69, 0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x5f, | ||||
| 	0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, | ||||
| 	0x68, 0x6c, 0x79, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x5f, | ||||
| 	0x79, 0x65, 0x61, 0x72, 0x6c, 0x79, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x42, 0x10, | ||||
| 	0x0a, 0x0e, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, | ||||
| 	0x42, 0x14, 0x0a, 0x12, 0x5f, 0x62, 0x61, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, | ||||
| 	0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x62, 0x61, 0x72, 0x6f, 0x6d, | ||||
| 	0x5f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, | ||||
| 	0x5f, 0x64, 0x65, 0x77, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x42, 0x0f, 0x0a, 0x0d, | ||||
| 	0x5f, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x6c, 0x5f, 0x66, 0x22, 0x7d, 0x0a, | ||||
| 	0x12, 0x54, 0x65, 0x6d, 0x70, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6e, | ||||
| 	0x73, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, | ||||
| 	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x74, 0x65, 0x6d, 0x70, 0x5f, | ||||
| 	0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 0x74, 0x65, 0x6d, 0x70, 0x46, | ||||
| 	0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, | ||||
| 	0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x08, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, | ||||
| 	0x79, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x66, 0x42, | ||||
| 	0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x22, 0x55, 0x0a, 0x0d, | ||||
| 	0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, | ||||
| 	0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, | ||||
| 	0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x73, | ||||
| 	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x73, | ||||
| 	0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, | ||||
| 	0x74, 0x75, 0x73, 0x42, 0x54, 0x5a, 0x52, 0x67, 0x69, 0x74, 0x65, 0x61, 0x2e, 0x6c, 0x69, 0x62, | ||||
| 	0x72, 0x65, 0x74, 0x65, 0x63, 0x68, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, | ||||
| 	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6d, 0x63, 0x67, 0x75, 0x69, 0x72, 0x65, 0x2f, 0x61, 0x6d, | ||||
| 	0x62, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2d, 0x65, 0x78, 0x70, 0x6f, | ||||
| 	0x72, 0x74, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, | ||||
| 	0x31, 0x2f, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, | ||||
| 	0x33, | ||||
| }) | ||||
| const file_weather_weather_proto_rawDesc = "" + | ||||
| 	"\n" + | ||||
| 	"\x15weather/weather.proto\x12\x0fambient.weather\x1a\x1fgoogle/protobuf/timestamp.proto\"m\n" + | ||||
| 	"\x11GetWeatherRequest\x123\n" + | ||||
| 	"\x04opts\x18\x01 \x01(\v2\x1f.ambient.weather.GetWeatherOptsR\x04opts\x12\x19\n" + | ||||
| 	"\x05limit\x18\x02 \x01(\x05H\x00R\x05limit\x88\x01\x01B\b\n" + | ||||
| 	"\x06_limit\"\x9c\x01\n" + | ||||
| 	"\x12GetWeatherResponse\x12=\n" + | ||||
| 	"\flast_updated\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\vlastUpdated\x12G\n" + | ||||
| 	"\x0fweather_updates\x18\x02 \x03(\v2\x1e.ambient.weather.WeatherUpdateR\x0eweatherUpdates\"\x82\x01\n" + | ||||
| 	"\x0eGetWeatherOpts\x12&\n" + | ||||
| 	"\fstation_name\x18\x01 \x01(\tH\x00R\vstationName\x88\x01\x01\x12&\n" + | ||||
| 	"\fstation_type\x18\x02 \x01(\tH\x01R\vstationType\x88\x01\x01B\x0f\n" + | ||||
| 	"\r_station_nameB\x0f\n" + | ||||
| 	"\r_station_type\"\xfe\f\n" + | ||||
| 	"\rWeatherUpdate\x12!\n" + | ||||
| 	"\fstation_name\x18\x01 \x01(\tR\vstationName\x12!\n" + | ||||
| 	"\fstation_type\x18\x02 \x01(\tR\vstationType\x12\x1d\n" + | ||||
| 	"\n" + | ||||
| 	"station_id\x18\x03 \x01(\tR\tstationId\x12)\n" + | ||||
| 	"\x0etemp_outdoor_f\x18\x04 \x01(\x01H\x00R\ftempOutdoorF\x88\x01\x01\x12'\n" + | ||||
| 	"\rtemp_indoor_f\x18\x05 \x01(\x01H\x01R\vtempIndoorF\x88\x01\x01\x12.\n" + | ||||
| 	"\x10humidity_outdoor\x18\x06 \x01(\x05H\x02R\x0fhumidityOutdoor\x88\x01\x01\x12,\n" + | ||||
| 	"\x0fhumidity_indoor\x18\a \x01(\x05H\x03R\x0ehumidityIndoor\x88\x01\x01\x12)\n" + | ||||
| 	"\x0ewind_speed_mph\x18\b \x01(\x01H\x04R\fwindSpeedMph\x88\x01\x01\x12'\n" + | ||||
| 	"\rwind_gust_mph\x18\t \x01(\x01H\x05R\vwindGustMph\x88\x01\x01\x12)\n" + | ||||
| 	"\x0emax_daily_gust\x18\n" + | ||||
| 	" \x01(\x01H\x06R\fmaxDailyGust\x88\x01\x01\x12\x1e\n" + | ||||
| 	"\bwind_dir\x18\v \x01(\x05H\aR\awindDir\x88\x01\x01\x12,\n" + | ||||
| 	"\x10wind_dir_avg_10m\x18\f \x01(\x05H\bR\rwindDirAvg10m\x88\x01\x01\x12\x13\n" + | ||||
| 	"\x02uv\x18\r \x01(\x05H\tR\x02uv\x88\x01\x01\x12,\n" + | ||||
| 	"\x0fsolar_radiation\x18\x0e \x01(\x01H\n" + | ||||
| 	"R\x0esolarRadiation\x88\x01\x01\x12)\n" + | ||||
| 	"\x0ehourly_rain_in\x18\x0f \x01(\x01H\vR\fhourlyRainIn\x88\x01\x01\x12'\n" + | ||||
| 	"\revent_rain_in\x18\x10 \x01(\x01H\fR\veventRainIn\x88\x01\x01\x12'\n" + | ||||
| 	"\rdaily_rain_in\x18\x11 \x01(\x01H\rR\vdailyRainIn\x88\x01\x01\x12)\n" + | ||||
| 	"\x0eweekly_rain_in\x18\x12 \x01(\x01H\x0eR\fweeklyRainIn\x88\x01\x01\x12+\n" + | ||||
| 	"\x0fmonthly_rain_in\x18\x13 \x01(\x01H\x0fR\rmonthlyRainIn\x88\x01\x01\x12)\n" + | ||||
| 	"\x0eyearly_rain_in\x18\x14 \x01(\x01H\x10R\fyearlyRainIn\x88\x01\x01\x12'\n" + | ||||
| 	"\rtotal_rain_in\x18\x15 \x01(\x01H\x11R\vtotalRainIn\x88\x01\x01\x12<\n" + | ||||
| 	"\tbatteries\x18\x16 \x03(\v2\x1e.ambient.weather.BatteryStatusR\tbatteries\x12/\n" + | ||||
| 	"\x11barom_relative_in\x18\x17 \x01(\x01H\x12R\x0fbaromRelativeIn\x88\x01\x01\x12/\n" + | ||||
| 	"\x11barom_absolute_in\x18\x18 \x01(\x01H\x13R\x0fbaromAbsoluteIn\x88\x01\x01\x12#\n" + | ||||
| 	"\vdew_point_f\x18\x19 \x01(\x01H\x14R\tdewPointF\x88\x01\x01\x12%\n" + | ||||
| 	"\fwind_chill_f\x18\x1a \x01(\x01H\x15R\n" + | ||||
| 	"windChillF\x88\x01\x01\x12W\n" + | ||||
| 	"\x15temp_humidity_sensors\x18\x1b \x03(\v2#.ambient.weather.TempHumiditySensorR\x13tempHumiditySensors\x12E\n" + | ||||
| 	"\x10update_timestamp\x18\x1c \x01(\v2\x1a.google.protobuf.TimestampR\x0fupdateTimestampB\x11\n" + | ||||
| 	"\x0f_temp_outdoor_fB\x10\n" + | ||||
| 	"\x0e_temp_indoor_fB\x13\n" + | ||||
| 	"\x11_humidity_outdoorB\x12\n" + | ||||
| 	"\x10_humidity_indoorB\x11\n" + | ||||
| 	"\x0f_wind_speed_mphB\x10\n" + | ||||
| 	"\x0e_wind_gust_mphB\x11\n" + | ||||
| 	"\x0f_max_daily_gustB\v\n" + | ||||
| 	"\t_wind_dirB\x13\n" + | ||||
| 	"\x11_wind_dir_avg_10mB\x05\n" + | ||||
| 	"\x03_uvB\x12\n" + | ||||
| 	"\x10_solar_radiationB\x11\n" + | ||||
| 	"\x0f_hourly_rain_inB\x10\n" + | ||||
| 	"\x0e_event_rain_inB\x10\n" + | ||||
| 	"\x0e_daily_rain_inB\x11\n" + | ||||
| 	"\x0f_weekly_rain_inB\x12\n" + | ||||
| 	"\x10_monthly_rain_inB\x11\n" + | ||||
| 	"\x0f_yearly_rain_inB\x10\n" + | ||||
| 	"\x0e_total_rain_inB\x14\n" + | ||||
| 	"\x12_barom_relative_inB\x14\n" + | ||||
| 	"\x12_barom_absolute_inB\x0e\n" + | ||||
| 	"\f_dew_point_fB\x0f\n" + | ||||
| 	"\r_wind_chill_f\"}\n" + | ||||
| 	"\x12TempHumiditySensor\x12\x12\n" + | ||||
| 	"\x04name\x18\x01 \x01(\tR\x04name\x12\x1a\n" + | ||||
| 	"\x06temp_f\x18\x02 \x01(\x01H\x00R\x05tempF\x88\x01\x01\x12\x1f\n" + | ||||
| 	"\bhumidity\x18\x03 \x01(\x05H\x01R\bhumidity\x88\x01\x01B\t\n" + | ||||
| 	"\a_temp_fB\v\n" + | ||||
| 	"\t_humidity\"U\n" + | ||||
| 	"\rBatteryStatus\x12\x1c\n" + | ||||
| 	"\tcomponent\x18\x01 \x01(\tR\tcomponent\x12\x1b\n" + | ||||
| 	"\x06status\x18\x02 \x01(\x05H\x00R\x06status\x88\x01\x01B\t\n" + | ||||
| 	"\a_statusBTZRgitea.libretechconsulting.com/rmcguire/ambient-local-exporter/api/v1alpha1/weatherb\x06proto3" | ||||
|  | ||||
| var ( | ||||
| 	file_weather_weather_proto_rawDescOnce sync.Once | ||||
|   | ||||
							
								
								
									
										44
									
								
								api/v1alpha1/weather/weather.swagger.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								api/v1alpha1/weather/weather.swagger.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| { | ||||
|   "swagger": "2.0", | ||||
|   "info": { | ||||
|     "title": "weather/weather.proto", | ||||
|     "version": "version not set" | ||||
|   }, | ||||
|   "consumes": [ | ||||
|     "application/json" | ||||
|   ], | ||||
|   "produces": [ | ||||
|     "application/json" | ||||
|   ], | ||||
|   "paths": {}, | ||||
|   "definitions": { | ||||
|     "protobufAny": { | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "@type": { | ||||
|           "type": "string" | ||||
|         } | ||||
|       }, | ||||
|       "additionalProperties": {} | ||||
|     }, | ||||
|     "rpcStatus": { | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "code": { | ||||
|           "type": "integer", | ||||
|           "format": "int32" | ||||
|         }, | ||||
|         "message": { | ||||
|           "type": "string" | ||||
|         }, | ||||
|         "details": { | ||||
|           "type": "array", | ||||
|           "items": { | ||||
|             "type": "object", | ||||
|             "$ref": "#/definitions/protobufAny" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @@ -1,12 +1,13 @@ | ||||
| // Code generated by protoc-gen-go. DO NOT EDIT. | ||||
| // versions: | ||||
| // 	protoc-gen-go v1.36.5 | ||||
| // 	protoc-gen-go v1.36.6 | ||||
| // 	protoc        v5.29.3 | ||||
| // source: weather/weather_service.proto | ||||
|  | ||||
| package weather | ||||
|  | ||||
| import ( | ||||
| 	_ "google.golang.org/genproto/googleapis/api/annotations" | ||||
| 	protoreflect "google.golang.org/protobuf/reflect/protoreflect" | ||||
| 	protoimpl "google.golang.org/protobuf/runtime/protoimpl" | ||||
| 	reflect "reflect" | ||||
| @@ -22,26 +23,12 @@ const ( | ||||
|  | ||||
| var File_weather_weather_service_proto protoreflect.FileDescriptor | ||||
|  | ||||
| var file_weather_weather_service_proto_rawDesc = string([]byte{ | ||||
| 	0x0a, 0x1d, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x2f, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, | ||||
| 	0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, | ||||
| 	0x0f, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, | ||||
| 	0x1a, 0x15, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x2f, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, | ||||
| 	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x73, 0x0a, 0x1a, 0x41, 0x6d, 0x62, 0x69, 0x65, | ||||
| 	0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x53, 0x65, | ||||
| 	0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x57, 0x65, 0x61, 0x74, | ||||
| 	0x68, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, | ||||
| 	0x61, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, | ||||
| 	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, | ||||
| 	0x74, 0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x61, | ||||
| 	0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x54, 0x5a, 0x52, | ||||
| 	0x67, 0x69, 0x74, 0x65, 0x61, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x65, 0x74, 0x65, 0x63, 0x68, 0x63, | ||||
| 	0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6d, | ||||
| 	0x63, 0x67, 0x75, 0x69, 0x72, 0x65, 0x2f, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x6c, | ||||
| 	0x6f, 0x63, 0x61, 0x6c, 0x2d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x61, 0x70, | ||||
| 	0x69, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x77, 0x65, 0x61, 0x74, 0x68, | ||||
| 	0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | ||||
| }) | ||||
| const file_weather_weather_service_proto_rawDesc = "" + | ||||
| 	"\n" + | ||||
| 	"\x1dweather/weather_service.proto\x12\x0fambient.weather\x1a\x1cgoogle/api/annotations.proto\x1a\x15weather/weather.proto2\x88\x01\n" + | ||||
| 	"\x1aAmbientLocalWeatherService\x12j\n" + | ||||
| 	"\n" + | ||||
| 	"GetWeather\x12\".ambient.weather.GetWeatherRequest\x1a#.ambient.weather.GetWeatherResponse\"\x13\x82\xd3\xe4\x93\x02\r\x12\v/v1/weatherBTZRgitea.libretechconsulting.com/rmcguire/ambient-local-exporter/api/v1alpha1/weatherb\x06proto3" | ||||
|  | ||||
| var file_weather_weather_service_proto_goTypes = []any{ | ||||
| 	(*GetWeatherRequest)(nil),  // 0: ambient.weather.GetWeatherRequest | ||||
|   | ||||
							
								
								
									
										163
									
								
								api/v1alpha1/weather/weather_service.pb.gw.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										163
									
								
								api/v1alpha1/weather/weather_service.pb.gw.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,163 @@ | ||||
| // Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. | ||||
| // source: weather/weather_service.proto | ||||
|  | ||||
| /* | ||||
| Package weather is a reverse proxy. | ||||
|  | ||||
| It translates gRPC into RESTful JSON APIs. | ||||
| */ | ||||
| package weather | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"errors" | ||||
| 	"io" | ||||
| 	"net/http" | ||||
|  | ||||
| 	"github.com/grpc-ecosystem/grpc-gateway/v2/runtime" | ||||
| 	"github.com/grpc-ecosystem/grpc-gateway/v2/utilities" | ||||
| 	"google.golang.org/grpc" | ||||
| 	"google.golang.org/grpc/codes" | ||||
| 	"google.golang.org/grpc/grpclog" | ||||
| 	"google.golang.org/grpc/metadata" | ||||
| 	"google.golang.org/grpc/status" | ||||
| 	"google.golang.org/protobuf/proto" | ||||
| ) | ||||
|  | ||||
| // Suppress "imported and not used" errors | ||||
| var ( | ||||
| 	_ codes.Code | ||||
| 	_ io.Reader | ||||
| 	_ status.Status | ||||
| 	_ = errors.New | ||||
| 	_ = runtime.String | ||||
| 	_ = utilities.NewDoubleArray | ||||
| 	_ = metadata.Join | ||||
| ) | ||||
|  | ||||
| var filter_AmbientLocalWeatherService_GetWeather_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} | ||||
|  | ||||
| func request_AmbientLocalWeatherService_GetWeather_0(ctx context.Context, marshaler runtime.Marshaler, client AmbientLocalWeatherServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { | ||||
| 	var ( | ||||
| 		protoReq GetWeatherRequest | ||||
| 		metadata runtime.ServerMetadata | ||||
| 	) | ||||
| 	io.Copy(io.Discard, req.Body) | ||||
| 	if err := req.ParseForm(); err != nil { | ||||
| 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) | ||||
| 	} | ||||
| 	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AmbientLocalWeatherService_GetWeather_0); err != nil { | ||||
| 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) | ||||
| 	} | ||||
| 	msg, err := client.GetWeather(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) | ||||
| 	return msg, metadata, err | ||||
| } | ||||
|  | ||||
| func local_request_AmbientLocalWeatherService_GetWeather_0(ctx context.Context, marshaler runtime.Marshaler, server AmbientLocalWeatherServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { | ||||
| 	var ( | ||||
| 		protoReq GetWeatherRequest | ||||
| 		metadata runtime.ServerMetadata | ||||
| 	) | ||||
| 	if err := req.ParseForm(); err != nil { | ||||
| 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) | ||||
| 	} | ||||
| 	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AmbientLocalWeatherService_GetWeather_0); err != nil { | ||||
| 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) | ||||
| 	} | ||||
| 	msg, err := server.GetWeather(ctx, &protoReq) | ||||
| 	return msg, metadata, err | ||||
| } | ||||
|  | ||||
| // RegisterAmbientLocalWeatherServiceHandlerServer registers the http handlers for service AmbientLocalWeatherService to "mux". | ||||
| // UnaryRPC     :call AmbientLocalWeatherServiceServer directly. | ||||
| // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. | ||||
| // Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterAmbientLocalWeatherServiceHandlerFromEndpoint instead. | ||||
| // GRPC interceptors will not work for this type of registration. To use interceptors, you must use the "runtime.WithMiddlewares" option in the "runtime.NewServeMux" call. | ||||
| func RegisterAmbientLocalWeatherServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AmbientLocalWeatherServiceServer) error { | ||||
| 	mux.Handle(http.MethodGet, pattern_AmbientLocalWeatherService_GetWeather_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { | ||||
| 		ctx, cancel := context.WithCancel(req.Context()) | ||||
| 		defer cancel() | ||||
| 		var stream runtime.ServerTransportStream | ||||
| 		ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) | ||||
| 		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) | ||||
| 		annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/ambient.weather.AmbientLocalWeatherService/GetWeather", runtime.WithHTTPPathPattern("/v1/weather")) | ||||
| 		if err != nil { | ||||
| 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) | ||||
| 			return | ||||
| 		} | ||||
| 		resp, md, err := local_request_AmbientLocalWeatherService_GetWeather_0(annotatedContext, inboundMarshaler, server, req, pathParams) | ||||
| 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) | ||||
| 		annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) | ||||
| 		if err != nil { | ||||
| 			runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) | ||||
| 			return | ||||
| 		} | ||||
| 		forward_AmbientLocalWeatherService_GetWeather_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) | ||||
| 	}) | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // RegisterAmbientLocalWeatherServiceHandlerFromEndpoint is same as RegisterAmbientLocalWeatherServiceHandler but | ||||
| // automatically dials to "endpoint" and closes the connection when "ctx" gets done. | ||||
| func RegisterAmbientLocalWeatherServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { | ||||
| 	conn, err := grpc.NewClient(endpoint, opts...) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	defer func() { | ||||
| 		if err != nil { | ||||
| 			if cerr := conn.Close(); cerr != nil { | ||||
| 				grpclog.Errorf("Failed to close conn to %s: %v", endpoint, cerr) | ||||
| 			} | ||||
| 			return | ||||
| 		} | ||||
| 		go func() { | ||||
| 			<-ctx.Done() | ||||
| 			if cerr := conn.Close(); cerr != nil { | ||||
| 				grpclog.Errorf("Failed to close conn to %s: %v", endpoint, cerr) | ||||
| 			} | ||||
| 		}() | ||||
| 	}() | ||||
| 	return RegisterAmbientLocalWeatherServiceHandler(ctx, mux, conn) | ||||
| } | ||||
|  | ||||
| // RegisterAmbientLocalWeatherServiceHandler registers the http handlers for service AmbientLocalWeatherService to "mux". | ||||
| // The handlers forward requests to the grpc endpoint over "conn". | ||||
| func RegisterAmbientLocalWeatherServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { | ||||
| 	return RegisterAmbientLocalWeatherServiceHandlerClient(ctx, mux, NewAmbientLocalWeatherServiceClient(conn)) | ||||
| } | ||||
|  | ||||
| // RegisterAmbientLocalWeatherServiceHandlerClient registers the http handlers for service AmbientLocalWeatherService | ||||
| // to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "AmbientLocalWeatherServiceClient". | ||||
| // Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "AmbientLocalWeatherServiceClient" | ||||
| // doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in | ||||
| // "AmbientLocalWeatherServiceClient" to call the correct interceptors. This client ignores the HTTP middlewares. | ||||
| func RegisterAmbientLocalWeatherServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client AmbientLocalWeatherServiceClient) error { | ||||
| 	mux.Handle(http.MethodGet, pattern_AmbientLocalWeatherService_GetWeather_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { | ||||
| 		ctx, cancel := context.WithCancel(req.Context()) | ||||
| 		defer cancel() | ||||
| 		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) | ||||
| 		annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/ambient.weather.AmbientLocalWeatherService/GetWeather", runtime.WithHTTPPathPattern("/v1/weather")) | ||||
| 		if err != nil { | ||||
| 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) | ||||
| 			return | ||||
| 		} | ||||
| 		resp, md, err := request_AmbientLocalWeatherService_GetWeather_0(annotatedContext, inboundMarshaler, client, req, pathParams) | ||||
| 		annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) | ||||
| 		if err != nil { | ||||
| 			runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) | ||||
| 			return | ||||
| 		} | ||||
| 		forward_AmbientLocalWeatherService_GetWeather_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) | ||||
| 	}) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| var ( | ||||
| 	pattern_AmbientLocalWeatherService_GetWeather_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "weather"}, "")) | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	forward_AmbientLocalWeatherService_GetWeather_0 = runtime.ForwardResponseMessage | ||||
| ) | ||||
							
								
								
									
										270
									
								
								api/v1alpha1/weather/weather_service.swagger.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										270
									
								
								api/v1alpha1/weather/weather_service.swagger.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,270 @@ | ||||
| { | ||||
|   "swagger": "2.0", | ||||
|   "info": { | ||||
|     "title": "weather/weather_service.proto", | ||||
|     "version": "version not set" | ||||
|   }, | ||||
|   "tags": [ | ||||
|     { | ||||
|       "name": "AmbientLocalWeatherService" | ||||
|     } | ||||
|   ], | ||||
|   "consumes": [ | ||||
|     "application/json" | ||||
|   ], | ||||
|   "produces": [ | ||||
|     "application/json" | ||||
|   ], | ||||
|   "paths": { | ||||
|     "/v1/weather": { | ||||
|       "get": { | ||||
|         "operationId": "AmbientLocalWeatherService_GetWeather", | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "description": "A successful response.", | ||||
|             "schema": { | ||||
|               "$ref": "#/definitions/weatherGetWeatherResponse" | ||||
|             } | ||||
|           }, | ||||
|           "default": { | ||||
|             "description": "An unexpected error response.", | ||||
|             "schema": { | ||||
|               "$ref": "#/definitions/rpcStatus" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         "parameters": [ | ||||
|           { | ||||
|             "name": "opts.stationName", | ||||
|             "in": "query", | ||||
|             "required": false, | ||||
|             "type": "string" | ||||
|           }, | ||||
|           { | ||||
|             "name": "opts.stationType", | ||||
|             "in": "query", | ||||
|             "required": false, | ||||
|             "type": "string" | ||||
|           }, | ||||
|           { | ||||
|             "name": "limit", | ||||
|             "in": "query", | ||||
|             "required": false, | ||||
|             "type": "integer", | ||||
|             "format": "int32" | ||||
|           } | ||||
|         ], | ||||
|         "tags": [ | ||||
|           "AmbientLocalWeatherService" | ||||
|         ] | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "definitions": { | ||||
|     "protobufAny": { | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "@type": { | ||||
|           "type": "string" | ||||
|         } | ||||
|       }, | ||||
|       "additionalProperties": {} | ||||
|     }, | ||||
|     "rpcStatus": { | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "code": { | ||||
|           "type": "integer", | ||||
|           "format": "int32" | ||||
|         }, | ||||
|         "message": { | ||||
|           "type": "string" | ||||
|         }, | ||||
|         "details": { | ||||
|           "type": "array", | ||||
|           "items": { | ||||
|             "type": "object", | ||||
|             "$ref": "#/definitions/protobufAny" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "weatherBatteryStatus": { | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "component": { | ||||
|           "type": "string" | ||||
|         }, | ||||
|         "status": { | ||||
|           "type": "integer", | ||||
|           "format": "int32" | ||||
|         } | ||||
|       }, | ||||
|       "title": "Represents battery status for different components" | ||||
|     }, | ||||
|     "weatherGetWeatherOpts": { | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "stationName": { | ||||
|           "type": "string" | ||||
|         }, | ||||
|         "stationType": { | ||||
|           "type": "string" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "weatherGetWeatherResponse": { | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "lastUpdated": { | ||||
|           "type": "string", | ||||
|           "format": "date-time" | ||||
|         }, | ||||
|         "weatherUpdates": { | ||||
|           "type": "array", | ||||
|           "items": { | ||||
|             "type": "object", | ||||
|             "$ref": "#/definitions/weatherWeatherUpdate" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "weatherTempHumiditySensor": { | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "name": { | ||||
|           "type": "string" | ||||
|         }, | ||||
|         "tempF": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "humidity": { | ||||
|           "type": "integer", | ||||
|           "format": "int32" | ||||
|         } | ||||
|       }, | ||||
|       "title": "Represents a temperature and humidity sensor" | ||||
|     }, | ||||
|     "weatherWeatherUpdate": { | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "stationName": { | ||||
|           "type": "string" | ||||
|         }, | ||||
|         "stationType": { | ||||
|           "type": "string" | ||||
|         }, | ||||
|         "stationId": { | ||||
|           "type": "string" | ||||
|         }, | ||||
|         "tempOutdoorF": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "tempIndoorF": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "humidityOutdoor": { | ||||
|           "type": "integer", | ||||
|           "format": "int32" | ||||
|         }, | ||||
|         "humidityIndoor": { | ||||
|           "type": "integer", | ||||
|           "format": "int32" | ||||
|         }, | ||||
|         "windSpeedMph": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "windGustMph": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "maxDailyGust": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "windDir": { | ||||
|           "type": "integer", | ||||
|           "format": "int32" | ||||
|         }, | ||||
|         "windDirAvg10m": { | ||||
|           "type": "integer", | ||||
|           "format": "int32" | ||||
|         }, | ||||
|         "uv": { | ||||
|           "type": "integer", | ||||
|           "format": "int32" | ||||
|         }, | ||||
|         "solarRadiation": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "hourlyRainIn": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "eventRainIn": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "dailyRainIn": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "weeklyRainIn": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "monthlyRainIn": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "yearlyRainIn": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "totalRainIn": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "batteries": { | ||||
|           "type": "array", | ||||
|           "items": { | ||||
|             "type": "object", | ||||
|             "$ref": "#/definitions/weatherBatteryStatus" | ||||
|           } | ||||
|         }, | ||||
|         "baromRelativeIn": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "baromAbsoluteIn": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "dewPointF": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "windChillF": { | ||||
|           "type": "number", | ||||
|           "format": "double" | ||||
|         }, | ||||
|         "tempHumiditySensors": { | ||||
|           "type": "array", | ||||
|           "items": { | ||||
|             "type": "object", | ||||
|             "$ref": "#/definitions/weatherTempHumiditySensor" | ||||
|           } | ||||
|         }, | ||||
|         "updateTimestamp": { | ||||
|           "type": "string", | ||||
|           "format": "date-time" | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										9
									
								
								app.go
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								app.go
									
									
									
									
									
								
							| @@ -9,8 +9,8 @@ import ( | ||||
|  | ||||
| 	weatherpb "gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/api/v1alpha1/weather" | ||||
| 	"gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/pkg/ambient" | ||||
| 	"gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/pkg/ambient/ambientgrpc" | ||||
| 	"gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/pkg/ambient/ambienthttp" | ||||
| 	weathergrpc "gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/pkg/weather/grpc" | ||||
| ) | ||||
|  | ||||
| func prepareApp(ctx context.Context, aw *ambient.AmbientWeather) *app.App { | ||||
| @@ -51,7 +51,12 @@ func prepareApp(ctx context.Context, aw *ambient.AmbientWeather) *app.App { | ||||
| 				{ | ||||
| 					Name:    "Weather Service", | ||||
| 					Type:    &weatherpb.AmbientLocalWeatherService_ServiceDesc, | ||||
| 					Service: weathergrpc.NewGRPCWeather(ctx, aw.GetRecorder()), | ||||
| 					Service: ambientgrpc.NewGRPCWeather(ctx, aw.GetRecorder()), | ||||
| 					GwRegistrationFuncs: []grpcopts.GwRegistrationFunc{ | ||||
| 						// HTTP API via grpc-gateway. Update path in app grpc config | ||||
| 						// to change default (/grpcapi) | ||||
| 						weatherpb.RegisterAmbientLocalWeatherServiceHandler, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
|   | ||||
| @@ -2,6 +2,10 @@ | ||||
|   "definitions": { | ||||
|     "ConfigGRPCConfig": { | ||||
|       "properties": { | ||||
|         "enableGRPCGateway": { | ||||
|           "default": true, | ||||
|           "type": "boolean" | ||||
|         }, | ||||
|         "enableInstrumentation": { | ||||
|           "type": "boolean" | ||||
|         }, | ||||
| @@ -11,6 +15,10 @@ | ||||
|         "enabled": { | ||||
|           "type": "boolean" | ||||
|         }, | ||||
|         "grpcGatewayPath": { | ||||
|           "default": "/grpc-api", | ||||
|           "type": "string" | ||||
|         }, | ||||
|         "listen": { | ||||
|           "type": "string" | ||||
|         }, | ||||
|   | ||||
							
								
								
									
										9
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								go.mod
									
									
									
									
									
								
							| @@ -3,15 +3,17 @@ module gitea.libretechconsulting.com/rmcguire/ambient-local-exporter | ||||
| go 1.24.1 | ||||
|  | ||||
| require ( | ||||
| 	gitea.libretechconsulting.com/rmcguire/go-app v0.7.0 | ||||
| 	gitea.libretechconsulting.com/rmcguire/go-app v0.8.1 | ||||
| 	github.com/go-resty/resty/v2 v2.16.5 | ||||
| 	github.com/gorilla/schema v1.4.1 | ||||
| 	github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 | ||||
| 	github.com/redis/go-redis/v9 v9.7.3 | ||||
| 	github.com/rs/zerolog v1.34.0 | ||||
| 	go.opentelemetry.io/otel v1.35.0 | ||||
| 	go.opentelemetry.io/otel/metric v1.35.0 | ||||
| 	go.opentelemetry.io/otel/trace v1.35.0 | ||||
| 	golang.org/x/sys v0.31.0 | ||||
| 	google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4 | ||||
| 	google.golang.org/grpc v1.71.0 | ||||
| 	google.golang.org/protobuf v1.36.6 | ||||
| 	k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e | ||||
| @@ -26,9 +28,10 @@ require ( | ||||
| 	github.com/felixge/httpsnoop v1.0.4 // indirect | ||||
| 	github.com/go-logr/logr v1.4.2 // indirect | ||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | ||||
| 	github.com/golang/protobuf v1.5.4 // indirect | ||||
| 	github.com/google/uuid v1.6.0 // indirect | ||||
| 	github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.1 // indirect | ||||
| 	github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect | ||||
| 	github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect | ||||
| 	github.com/klauspost/compress v1.18.0 // indirect | ||||
| 	github.com/mattn/go-colorable v0.1.14 // indirect | ||||
| 	github.com/mattn/go-isatty v0.0.20 // indirect | ||||
| @@ -53,7 +56,7 @@ require ( | ||||
| 	go.opentelemetry.io/proto/otlp v1.5.0 // indirect | ||||
| 	golang.org/x/net v0.37.0 // indirect | ||||
| 	golang.org/x/text v0.23.0 // indirect | ||||
| 	google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4 // indirect | ||||
| 	google.golang.org/genproto v0.0.0-20250313205543-e70fdf4c4cb4 // indirect | ||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 // indirect | ||||
| 	google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 // indirect | ||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||
|   | ||||
							
								
								
									
										73
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								go.sum
									
									
									
									
									
								
							| @@ -1,5 +1,13 @@ | ||||
| cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= | ||||
| cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= | ||||
| gitea.libretechconsulting.com/rmcguire/go-app v0.7.0 h1:yhRRwV/dxN4Bey1Qv8/rHHV5QvALrZuDJFI+zFPc7sU= | ||||
| gitea.libretechconsulting.com/rmcguire/go-app v0.7.0/go.mod h1:EM3Z9QcRD+b7UlKGA9y37ppfUBC0Reyf5sYEC6vFZcY= | ||||
| gitea.libretechconsulting.com/rmcguire/go-app v0.8.0 h1:PC8vlpr8tLoRwIHsq5nvOYzz9VqGhxrecAzWuwDXZVo= | ||||
| gitea.libretechconsulting.com/rmcguire/go-app v0.8.0/go.mod h1:W6YHFSGf4nJrgs9DqEaw+3J6ufIARsr1zpOs/V6gRTQ= | ||||
| gitea.libretechconsulting.com/rmcguire/go-app v0.8.1 h1:pnmFJnY77dsh84zvVcHqFuQgkxy3hjCQ8tFRGv/aJOw= | ||||
| gitea.libretechconsulting.com/rmcguire/go-app v0.8.1/go.mod h1:W6YHFSGf4nJrgs9DqEaw+3J6ufIARsr1zpOs/V6gRTQ= | ||||
| github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||
| github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= | ||||
| github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= | ||||
| github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= | ||||
| github.com/bool64/dev v0.2.39 h1:kP8DnMGlWXhGYJEZE/J0l/gVBdbuhoPGL+MJG4QbofE= | ||||
| @@ -14,15 +22,23 @@ github.com/caarlos0/env/v11 v11.3.1 h1:cArPWC15hWmEt+gWk7YBi7lEXTXCvpaSdCiZE2X5m | ||||
| github.com/caarlos0/env/v11 v11.3.1/go.mod h1:qupehSf/Y0TUTsxKywqRt/vJjN5nz6vauiYEUUr8P4U= | ||||
| github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= | ||||
| github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= | ||||
| github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= | ||||
| github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= | ||||
| github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= | ||||
| github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | ||||
| github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= | ||||
| github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= | ||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= | ||||
| github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= | ||||
| github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= | ||||
| github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= | ||||
| github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= | ||||
| github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | ||||
| github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= | ||||
| github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= | ||||
| github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | ||||
| github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||
| github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= | ||||
| github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= | ||||
| @@ -31,16 +47,26 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre | ||||
| github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= | ||||
| github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= | ||||
| github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= | ||||
| github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= | ||||
| github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= | ||||
| github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||
| github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||
| github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= | ||||
| github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= | ||||
| github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= | ||||
| github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= | ||||
| github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= | ||||
| github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= | ||||
| github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= | ||||
| github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/gorilla/schema v1.4.1 h1:jUg5hUjCSDZpNGLuXQOgIWGdlgrIdYvgQ0wZtdK1M3E= | ||||
| github.com/gorilla/schema v1.4.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= | ||||
| github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.1 h1:KcFzXwzM/kGhIRHvc8jdixfIJjVzuUJdnv+5xsPutog= | ||||
| github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.1/go.mod h1:qOchhhIlmRcqk/O9uCo/puJlyo07YINaIqdZfZG3Jkc= | ||||
| github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= | ||||
| github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= | ||||
| github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= | ||||
| github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= | ||||
| github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc= | ||||
| @@ -67,6 +93,7 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb | ||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||
| github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= | ||||
| github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= | ||||
| github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= | ||||
| github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= | ||||
| github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= | ||||
| github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= | ||||
| @@ -75,6 +102,7 @@ github.com/prometheus/procfs v0.16.0 h1:xh6oHhKwnOJKMYiYBDWmkHqQPyiY40sny36Cmx2b | ||||
| github.com/prometheus/procfs v0.16.0/go.mod h1:8veyXUu3nGP7oaCxhX6yeaM5u4stL2FeMXnCqhDthZg= | ||||
| github.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0wM= | ||||
| github.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA= | ||||
| github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= | ||||
| github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= | ||||
| github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= | ||||
| github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= | ||||
| @@ -126,21 +154,63 @@ go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU | ||||
| go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= | ||||
| go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= | ||||
| go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= | ||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
| golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||
| golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||
| golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | ||||
| golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= | ||||
| golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | ||||
| golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | ||||
| golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= | ||||
| golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= | ||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= | ||||
| golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= | ||||
| golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= | ||||
| golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= | ||||
| golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= | ||||
| golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= | ||||
| golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | ||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | ||||
| google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | ||||
| google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | ||||
| google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | ||||
| google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= | ||||
| google.golang.org/genproto v0.0.0-20250313205543-e70fdf4c4cb4 h1:kCjWYliqPA8g5z87mbjnf/cdgQqMzBfp9xYre5qKu2A= | ||||
| google.golang.org/genproto v0.0.0-20250313205543-e70fdf4c4cb4/go.mod h1:SqIx1NV9hcvqdLHo7uNZDS5lrUJybQ3evo3+z/WBfA0= | ||||
| google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4 h1:IFnXJq3UPB3oBREOodn1v1aGQeZYQclEmvWRMN0PSsY= | ||||
| google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4/go.mod h1:c8q6Z6OCqnfVIqUFJkCzKcrj8eCvUrz+K4KRzSTuANg= | ||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 h1:iK2jbkWL86DXjEx0qiHcRE9dE4/Ahua5k6V8OWFb//c= | ||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= | ||||
| google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | ||||
| google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= | ||||
| google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= | ||||
| google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= | ||||
| google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= | ||||
| google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= | ||||
| google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= | ||||
| google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= | ||||
| @@ -150,7 +220,10 @@ google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/ | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= | ||||
| gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= | ||||
| gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||
| gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||
| honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||
| k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e h1:KqK5c/ghOm8xkHYhlodbp6i6+r+ChV2vuAuVRdFbLro= | ||||
| k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| package grpc | ||||
| package ambientgrpc | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| @@ -1,4 +1,4 @@ | ||||
| package grpc | ||||
| package ambientgrpc | ||||
| 
 | ||||
| import ( | ||||
| 	"slices" | ||||
| @@ -1,4 +1,4 @@ | ||||
| package grpc | ||||
| package ambientgrpc | ||||
| 
 | ||||
| import ( | ||||
| 	"reflect" | ||||
							
								
								
									
										1
									
								
								proto/googleapis
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								proto/googleapis
									
									
									
									
									
										Submodule
									
								
							 Submodule proto/googleapis added at 53ca65d540
									
								
							
		Reference in New Issue
	
	Block a user