strings.proto 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. syntax = "proto3";
  2. package tests.harness.cases;
  3. option go_package = "github.com/envoyproxy/protoc-gen-validate/tests/harness/cases/go;cases";
  4. import "validate/validate.proto";
  5. message StringNone { string val = 1; }
  6. message StringConst { string val = 1 [(validate.rules).string.const = "foo"]; }
  7. message StringIn { string val = 1 [(validate.rules).string = {in: ["bar", "baz"]}]; }
  8. message StringNotIn { string val = 1 [(validate.rules).string = {not_in: ["fizz", "buzz"]}]; }
  9. message StringLen { string val = 1 [(validate.rules).string.len = 3]; }
  10. message StringMinLen { string val = 1 [(validate.rules).string.min_len = 3]; }
  11. message StringMaxLen { string val = 1 [(validate.rules).string.max_len = 5]; }
  12. message StringMinMaxLen { string val = 1 [(validate.rules).string = {min_len: 3, max_len: 5}]; }
  13. message StringEqualMinMaxLen { string val = 1 [(validate.rules).string = {min_len: 5, max_len: 5}]; }
  14. message StringLenBytes { string val = 1 [(validate.rules).string.len_bytes = 4]; }
  15. message StringMinBytes { string val = 1 [(validate.rules).string.min_bytes = 4]; }
  16. message StringMaxBytes { string val = 1 [(validate.rules).string.max_bytes = 8]; }
  17. message StringMinMaxBytes { string val = 1 [(validate.rules).string = {min_bytes: 4, max_bytes: 8}]; }
  18. message StringEqualMinMaxBytes { string val = 1 [(validate.rules).string = {min_bytes: 4, max_bytes: 8}]; }
  19. message StringPattern { string val = 1 [(validate.rules).string.pattern = "(?i)^[a-z0-9]+$"]; }
  20. message StringPatternEscapes { string val = 1 [(validate.rules).string.pattern = "\\* \\\\ \\w"]; }
  21. message StringPrefix { string val = 1 [(validate.rules).string.prefix = "foo"]; }
  22. message StringContains { string val = 1 [(validate.rules).string.contains = "bar"]; }
  23. message StringNotContains { string val = 1 [(validate.rules).string.not_contains = "bar"]; }
  24. message StringSuffix { string val = 1 [(validate.rules).string.suffix = "baz"]; }
  25. message StringEmail { string val = 1 [(validate.rules).string.email = true]; }
  26. message StringAddress { string val = 1 [(validate.rules).string.address = true]; }
  27. message StringHostname { string val = 1 [(validate.rules).string.hostname = true]; }
  28. message StringIP { string val = 1 [(validate.rules).string.ip = true]; }
  29. message StringIPv4 { string val = 1 [(validate.rules).string.ipv4 = true]; }
  30. message StringIPv6 { string val = 1 [(validate.rules).string.ipv6 = true]; }
  31. message StringURI { string val = 1 [(validate.rules).string.uri = true]; }
  32. message StringURIRef { string val = 1 [(validate.rules).string.uri_ref = true]; }
  33. message StringUUID { string val = 1 [(validate.rules).string.uuid = true]; }
  34. message StringHttpHeaderName { string val = 1 [(validate.rules).string.well_known_regex = HTTP_HEADER_NAME]; }
  35. message StringHttpHeaderValue { string val = 1 [(validate.rules).string.well_known_regex = HTTP_HEADER_VALUE]; }
  36. message StringValidHeader { string val = 1 [(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE, strict: false}]; }
  37. message StringUUIDIgnore { string val = 1 [(validate.rules).string = {uuid: true, ignore_empty: true}]; }