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