syntax = "proto3";

package custom_detectors;

option go_package = "github.com/trufflesecurity/trufflehog/v3/pkg/pb/custom_detectorspb";

import "validate/validate.proto";

message CustomDetectors {
  repeated CustomRegex detectors = 1;
}

message CustomRegex {
  string name = 1;
  repeated string keywords = 2;
  map<string, string> regex = 3;
  repeated VerifierConfig verify = 4;
  string description = 5;
  repeated string exclude_regexes_capture = 6;
  repeated string exclude_words = 7;
  float entropy = 8;
  repeated string exclude_regexes_match = 9;
  string primary_regex_name = 10;
  map<string, ValidationConfig> validations = 11;
}


message VerifierConfig {
  string endpoint = 1 [(validate.rules).string.uri_ref = true];
  bool unsafe = 2;
  repeated string headers = 3;
  repeated string successRanges = 4;
  repeated string rotatedRanges = 5;
}

message ValidationConfig {
  bool contains_digit = 1;
  bool contains_lowercase = 2;
  bool contains_uppercase = 3;
  bool contains_special_char = 4;
}
