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