syntax = "proto3"; package grpc.redaction.v1; import "google/protobuf/struct.proto"; option csharp_namespace = "Grpc.Redaction.V1"; // Enums enum Method { METHOD_UNSPECIFIED = 0; mask = 1; replaceWithInitials = 2; replaceWith = 3; remove = 4; } enum EntityType { ENTITY_TYPE_UNSPECIFIED = 0; name = 1; address = 2; email = 3; phoneNumber = 4; personalNumber = 5; } // Rule Details (Restricted) message DefaultRules { optional Method method = 1; optional string maskingCharacter = 2; optional string replacementText = 3; optional string fillColor = 4; optional string textColor = 5; repeated string findValues = 6; repeated string ignoreValues = 7; } message NameRules { optional Method method = 1; optional string maskingCharacter = 2; optional string replacementText = 3; optional string fillColor = 4; optional string textColor = 5; repeated string findValues = 6; repeated string ignoreValues = 7; optional bool redactPersonNamedCompanies = 20; optional int32 minNameParts = 21; optional double minConfidence = 22; } message AddressRules { optional Method method = 1; optional string maskingCharacter = 2; optional string replacementText = 3; optional string fillColor = 4; optional string textColor = 5; repeated string findValues = 6; repeated string ignoreValues = 7; optional string mode = 20; optional double minConfidence = 21; } message EmailRules { optional Method method = 1; optional string maskingCharacter = 2; optional string replacementText = 3; optional string fillColor = 4; optional string textColor = 5; repeated string findValues = 6; repeated string ignoreValues = 7; } message PhoneNumberRules { optional Method method = 1; optional string maskingCharacter = 2; optional string replacementText = 3; optional string fillColor = 4; optional string textColor = 5; repeated string findValues = 6; repeated string ignoreValues = 7; } message PersonalNumberRules { optional Method method = 1; optional string maskingCharacter = 2; optional string replacementText = 3; optional string fillColor = 4; optional string textColor = 5; repeated string findValues = 6; repeated string ignoreValues = 7; } // Options message Rules { optional DefaultRules default = 1; optional NameRules name = 2; optional AddressRules address = 3; optional EmailRules email = 4; optional PhoneNumberRules phoneNumber = 5; optional PersonalNumberRules personalNumber = 6; } message Options { repeated EntityType entities = 1; optional Rules rules = 2; } // Requests message RedactTextRequest { optional string text = 1; optional Options options = 2; } message RedactFileRequest { optional string fileName = 1; optional bytes fileBytes = 2; optional string fileBase64 = 3; optional Options options = 4; } // Results message TextResult { optional string redactedText = 1; optional google.protobuf.Struct entities = 2; } message FileResult { optional string redactedFileBase64 = 1; optional bytes redactedFileBytes = 2; optional google.protobuf.Struct entities = 3; } // Responses message RedactTextResponse { optional int64 tookMs = 1; optional TextResult result = 2; } message RedactFileResponse { optional int64 tookMs = 1; optional FileResult result = 2; } // Service service RedactionService { rpc RedactText (RedactTextRequest) returns (RedactTextResponse); rpc RedactFile (RedactFileRequest) returns (RedactFileResponse); }