mirror of https://github.com/dragonflyoss/api.git
parent
d61a0ef693
commit
bb4e1d92ff
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "dragonfly-api"
|
||||
version = "2.0.24"
|
||||
version = "2.0.25"
|
||||
authors = ["Gaius <gaius.qi@gmail.com>"]
|
||||
edition = "2021"
|
||||
license = "Apache-2.0"
|
||||
|
|
|
@ -1060,12 +1060,12 @@ var file_pkg_apis_common_v1_common_proto_rawDesc = []byte{
|
|||
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa3, 0x03,
|
||||
0x0a, 0x07, 0x55, 0x72, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x7d, 0x0a, 0x06, 0x64, 0x69, 0x67,
|
||||
0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x65, 0xfa, 0x42, 0x62, 0x72, 0x60,
|
||||
0x32, 0x5b, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30,
|
||||
0x32, 0x5b, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30,
|
||||
0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d,
|
||||
0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61,
|
||||
0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b,
|
||||
0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41,
|
||||
0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32, 0x38, 0x7d, 0x29, 0x24, 0xd0, 0x01, 0x01,
|
||||
0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61,
|
||||
0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b,
|
||||
0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41,
|
||||
0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32, 0x38, 0x7d, 0x29, 0x24, 0xd0, 0x01, 0x01,
|
||||
0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x61,
|
||||
0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0xfa, 0x42, 0x16, 0x72, 0x14,
|
||||
|
|
|
@ -164,7 +164,7 @@ func (m *UrlMeta) validate(all bool) error {
|
|||
if !_UrlMeta_Digest_Pattern.MatchString(m.GetDigest()) {
|
||||
err := UrlMetaValidationError{
|
||||
field: "Digest",
|
||||
reason: "value does not match regex pattern \"^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$\"",
|
||||
reason: "value does not match regex pattern \"^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$\"",
|
||||
}
|
||||
if !all {
|
||||
return err
|
||||
|
@ -276,7 +276,7 @@ var _ interface {
|
|||
ErrorName() string
|
||||
} = UrlMetaValidationError{}
|
||||
|
||||
var _UrlMeta_Digest_Pattern = regexp.MustCompile("^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$")
|
||||
var _UrlMeta_Digest_Pattern = regexp.MustCompile("^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$")
|
||||
|
||||
var _UrlMeta_Range_Pattern = regexp.MustCompile("^[0-9]+-[0-9]*$")
|
||||
|
||||
|
|
|
@ -163,7 +163,7 @@ message GrpcDfError {
|
|||
// UrlMeta describes url meta info.
|
||||
message UrlMeta {
|
||||
// Digest checks integrity of url content, for example md5:xxx or sha256:yyy.
|
||||
string digest = 1 [(validate.rules).string = {pattern: "^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$", ignore_empty:true}];
|
||||
string digest = 1 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$", ignore_empty:true}];
|
||||
// URL tag identifies different task for same url, conflict with digest.
|
||||
string tag = 2;
|
||||
// Content range for url.
|
||||
|
|
|
@ -1816,11 +1816,11 @@ var file_pkg_apis_common_v2_common_proto_rawDesc = []byte{
|
|||
0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72,
|
||||
0x6c, 0x12, 0x7d, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x09, 0x42, 0x65, 0xfa, 0x42, 0x62, 0x72, 0x60, 0x32, 0x5b, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a,
|
||||
0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c,
|
||||
0x73, 0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d,
|
||||
0x7b, 0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x7a,
|
||||
0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35,
|
||||
0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31,
|
||||
0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c,
|
||||
0x73, 0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d,
|
||||
0x7b, 0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66,
|
||||
0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35,
|
||||
0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31,
|
||||
0x32, 0x38, 0x7d, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74,
|
||||
0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74,
|
||||
0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
|
||||
|
@ -2019,11 +2019,11 @@ var file_pkg_apis_common_v2_common_proto_rawDesc = []byte{
|
|||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01,
|
||||
0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x7d, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x65, 0xfa, 0x42, 0x62, 0x72, 0x60, 0x32, 0x5b, 0x5e, 0x28,
|
||||
0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b,
|
||||
0x33, 0x32, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a,
|
||||
0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b,
|
||||
0x33, 0x32, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46,
|
||||
0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a,
|
||||
0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c,
|
||||
0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d,
|
||||
0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c,
|
||||
0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d,
|
||||
0x39, 0x5d, 0x7b, 0x31, 0x32, 0x38, 0x7d, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x06, 0x64, 0x69,
|
||||
0x67, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
|
||||
|
@ -2078,11 +2078,11 @@ var file_pkg_apis_common_v2_common_proto_rawDesc = []byte{
|
|||
0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68,
|
||||
0x12, 0x7d, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
|
||||
0x42, 0x65, 0xfa, 0x42, 0x62, 0x72, 0x60, 0x32, 0x5b, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b,
|
||||
0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73,
|
||||
0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b,
|
||||
0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41,
|
||||
0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31,
|
||||
0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32,
|
||||
0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73,
|
||||
0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b,
|
||||
0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41,
|
||||
0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31,
|
||||
0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32,
|
||||
0x38, 0x7d, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12,
|
||||
0x23, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c,
|
||||
0x42, 0x09, 0xfa, 0x42, 0x06, 0x7a, 0x04, 0x10, 0x01, 0x70, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e,
|
||||
|
|
|
@ -428,7 +428,7 @@ func (m *Task) validate(all bool) error {
|
|||
if !_Task_Digest_Pattern.MatchString(m.GetDigest()) {
|
||||
err := TaskValidationError{
|
||||
field: "Digest",
|
||||
reason: "value does not match regex pattern \"^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$\"",
|
||||
reason: "value does not match regex pattern \"^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$\"",
|
||||
}
|
||||
if !all {
|
||||
return err
|
||||
|
@ -651,7 +651,7 @@ var _ interface {
|
|||
ErrorName() string
|
||||
} = TaskValidationError{}
|
||||
|
||||
var _Task_Digest_Pattern = regexp.MustCompile("^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$")
|
||||
var _Task_Digest_Pattern = regexp.MustCompile("^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$")
|
||||
|
||||
// Validate checks the field values on Host with the rules defined in the proto
|
||||
// definition for this message. If any rules are violated, the first error
|
||||
|
@ -1909,7 +1909,7 @@ func (m *Download) validate(all bool) error {
|
|||
if !_Download_Digest_Pattern.MatchString(m.GetDigest()) {
|
||||
err := DownloadValidationError{
|
||||
field: "Digest",
|
||||
reason: "value does not match regex pattern \"^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$\"",
|
||||
reason: "value does not match regex pattern \"^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$\"",
|
||||
}
|
||||
if !all {
|
||||
return err
|
||||
|
@ -2103,7 +2103,7 @@ var _ interface {
|
|||
ErrorName() string
|
||||
} = DownloadValidationError{}
|
||||
|
||||
var _Download_Digest_Pattern = regexp.MustCompile("^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$")
|
||||
var _Download_Digest_Pattern = regexp.MustCompile("^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$")
|
||||
|
||||
// Validate checks the field values on Range with the rules defined in the
|
||||
// proto definition for this message. If any rules are violated, the first
|
||||
|
@ -2281,7 +2281,7 @@ func (m *Piece) validate(all bool) error {
|
|||
if !_Piece_Digest_Pattern.MatchString(m.GetDigest()) {
|
||||
err := PieceValidationError{
|
||||
field: "Digest",
|
||||
reason: "value does not match regex pattern \"^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$\"",
|
||||
reason: "value does not match regex pattern \"^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$\"",
|
||||
}
|
||||
if !all {
|
||||
return err
|
||||
|
@ -2407,4 +2407,4 @@ var _ interface {
|
|||
ErrorName() string
|
||||
} = PieceValidationError{}
|
||||
|
||||
var _Piece_Digest_Pattern = regexp.MustCompile("^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$")
|
||||
var _Piece_Digest_Pattern = regexp.MustCompile("^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$")
|
||||
|
|
|
@ -141,7 +141,7 @@ message Task {
|
|||
// Download url.
|
||||
string url = 3 [(validate.rules).string.uri = true];
|
||||
// Digest of the pieces digest, for example md5:xxx or sha256:yyy.
|
||||
string digest = 4 [(validate.rules).string = {pattern: "^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$", ignore_empty: true}];
|
||||
string digest = 4 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$", ignore_empty: true}];
|
||||
// URL tag identifies different task for same url.
|
||||
string tag = 5;
|
||||
// Application of task.
|
||||
|
@ -318,7 +318,7 @@ message Download {
|
|||
// Download url.
|
||||
string url = 1 [(validate.rules).string.uri = true];
|
||||
// Digest of the pieces digest, for example md5:xxx or sha256:yyy.
|
||||
string digest = 2 [(validate.rules).string = {pattern: "^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$", ignore_empty: true}];
|
||||
string digest = 2 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$", ignore_empty: true}];
|
||||
// Range is url range of request.
|
||||
Range range = 3;
|
||||
// Task type.
|
||||
|
@ -364,7 +364,7 @@ message Piece {
|
|||
// Piece length.
|
||||
uint64 length = 4 [(validate.rules).uint64.gt = 0];
|
||||
// Digest of the piece data, for example md5:xxx or sha256:yyy.
|
||||
string digest = 5 [(validate.rules).string = {pattern: "^(md5:[a-zA-Z0-9]{32}|sha1:[a-zA-Z0-9]{40}|sha256:[a-zA-Z0-9]{64}|sha512:[a-zA-Z0-9]{128})$", ignore_empty: true}];
|
||||
string digest = 5 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128})$", ignore_empty: true}];
|
||||
// Piece content.
|
||||
bytes content = 6 [(validate.rules).bytes = {min_len: 1, ignore_empty: true}];
|
||||
// Traffic type.
|
||||
|
|
Loading…
Reference in New Issue