enums.proto 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. import "tests/harness/cases/other_package/embed.proto";
  6. enum TestEnum {
  7. ZERO = 0;
  8. ONE = 1;
  9. TWO = 2;
  10. }
  11. enum TestEnumAlias {
  12. option allow_alias = true;
  13. A = 0;
  14. B = 1;
  15. C = 2;
  16. ALPHA = 0;
  17. BETA = 1;
  18. GAMMA = 2;
  19. }
  20. message EnumNone { TestEnum val = 1; }
  21. message EnumConst { TestEnum val = 1 [(validate.rules).enum.const = 2];}
  22. message EnumAliasConst { TestEnumAlias val = 1 [(validate.rules).enum.const = 2];}
  23. message EnumDefined { TestEnum val = 1 [(validate.rules).enum.defined_only = true];}
  24. message EnumAliasDefined { TestEnumAlias val = 1 [(validate.rules).enum.defined_only = true];}
  25. message EnumIn { TestEnum val = 1 [(validate.rules).enum = { in: [0, 2]}];}
  26. message EnumAliasIn { TestEnumAlias val = 1 [(validate.rules).enum = { in: [0, 2]}];}
  27. message EnumNotIn { TestEnum val = 1 [(validate.rules).enum = { not_in: [1]}];}
  28. message EnumAliasNotIn { TestEnumAlias val = 1 [(validate.rules).enum = { not_in: [1]}]; }
  29. message EnumExternal { other_package.Embed.Enumerated val = 1 [(validate.rules).enum.defined_only = true]; }
  30. message RepeatedEnumDefined { repeated TestEnum val = 1 [(validate.rules).repeated.items.enum.defined_only = true]; }
  31. message RepeatedExternalEnumDefined { repeated other_package.Embed.Enumerated val = 1 [(validate.rules).repeated.items.enum.defined_only = true]; }
  32. message MapEnumDefined { map<string, TestEnum> val = 1 [(validate.rules).map.values.enum.defined_only = true]; }
  33. message MapExternalEnumDefined { map<string, other_package.Embed.Enumerated> val = 1 [(validate.rules).map.values.enum.defined_only = true]; }