syntax = "proto3"; package facerecognition; // The request message containing the image bytes message FaceRequest { bytes image = 1; string model_name = 2; // optional: "VGG-Face", "FaceNet", "OpenFace" } // The response message containing recognition results message FaceResponse { string name = 1; float confidence = 2; bytes image = 3; // matched employee image } // Enrollment messages message EnrollFaceRequest { bytes image = 1; string name = 2; } message EnrollFaceResponse { bool success = 1; string message = 2; } // Messages for getting all employees message Employee { string name = 1; bytes image = 2; } message EmployeeListRequest {} message EmployeeListResponse { repeated Employee employees = 1; } // Messages for deleting an employee message DeleteRequest { string name = 1; } message DeleteEmployeeResponse { bool success = 1; string message = 2; } // The Face Recognition Service service FaceRecognitionService { rpc Recognize(FaceRequest) returns (FaceResponse); rpc EnrollFace(EnrollFaceRequest) returns (EnrollFaceResponse); rpc GetAllEmployees(EmployeeListRequest) returns (EmployeeListResponse); rpc DeleteEmployee(DeleteRequest) returns (DeleteEmployeeResponse); }