1syntax = "proto3";
2
3package tests.harness.cases;
4option go_package = "cases";
5
6import "validate/validate.proto";
7
8message BytesNone        { bytes val = 1; }
9message BytesConst       { bytes val = 1 [(validate.rules).bytes.const = "foo"]; }
10message BytesIn          { bytes val = 1 [(validate.rules).bytes = {in: ["bar", "baz"]}]; }
11message BytesNotIn       { bytes val = 1 [(validate.rules).bytes = {not_in: ["fizz", "buzz"]}]; }
12message BytesLen         { bytes val = 1 [(validate.rules).bytes.len = 3]; }
13message BytesMinLen      { bytes val = 1 [(validate.rules).bytes.min_len = 3]; }
14message BytesMaxLen      { bytes val = 1 [(validate.rules).bytes.max_len = 5]; }
15message BytesMinMaxLen   { bytes val = 1 [(validate.rules).bytes = {min_len: 3, max_len: 5}]; }
16message BytesEqualMinMaxLen   { bytes val = 1 [(validate.rules).bytes = {min_len: 5, max_len: 5}]; }
17message BytesPattern     { bytes val = 1 [(validate.rules).bytes.pattern = "^[\x00-\x7F]+$"]; }
18message BytesPrefix      { bytes val = 1 [(validate.rules).bytes.prefix = "\x99"]; }
19message BytesContains    { bytes val = 1 [(validate.rules).bytes.contains = "bar"]; }
20message BytesSuffix      { bytes val = 1 [(validate.rules).bytes.suffix = "buz\x7a"]; }
21message BytesIP          { bytes val = 1 [(validate.rules).bytes.ip = true]; }
22message BytesIPv4        { bytes val = 1 [(validate.rules).bytes.ipv4 = true]; }
23message BytesIPv6        { bytes val = 1 [(validate.rules).bytes.ipv6 = true]; }
24