Signal-Server/service/src/test/proto/validation_test.proto

85 lines
2.7 KiB
Protocol Buffer

/*
* Copyright 2023 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
syntax = "proto3";
option java_multiple_files = true;
package org.signal.chat.rpc;
import "org/signal/chat/require.proto";
import "google/protobuf/empty.proto";
service ValidationTestService {
rpc ValidationsEndpoint (ValidationsRequest) returns (ValidationsResponse) {}
}
service AuthService {
option (require.auth) = AUTH_ONLY_AUTHENTICATED;
rpc AuthenticatedMethod (google.protobuf.Empty) returns (google.protobuf.Empty) {}
}
service AnonymousService {
option (require.auth) = AUTH_ONLY_ANONYMOUS;
rpc AnonymousMethod (google.protobuf.Empty) returns (google.protobuf.Empty) {}
}
message ValidationsRequest {
optional string number = 1 [(require.e164) = true];
optional string fixedSizeString = 2 [(require.exactlySize) = 5];
optional string rangeSizeString = 3 [(require.size) = {min: 3, max: 8}];
optional bytes fixedSizeBytes = 4 [(require.exactlySize) = 5];
optional bytes rangeSizeBytes = 5 [(require.size) = {min: 3, max: 8}];
repeated string fixedSizeList = 6 [(require.exactlySize) = 5];
repeated string rangeSizeList = 7 [(require.size) = {min: 3, max: 8}];
bytes withMinBytes = 8 [(require.size).min = 3];
string withMinString = 9 [(require.size).min = 3];
bytes withMaxBytes = 10 [(require.size).max = 8];
string withMaxString = 11 [(require.size).max = 8];
optional string exactlySizeVariants = 12 [(require.exactlySize) = 2, (require.exactlySize) = 4];
optional string exactlySizeVariantsWithZero = 13 [(require.exactlySize) = 0, (require.exactlySize) = 4];
optional string nonEmptyStringOptional = 14 [(require.nonEmpty) = true];
optional bytes nonEmptyBytesOptional = 15 [(require.nonEmpty) = true];
string nonEmptyString = 16 [(require.nonEmpty) = true];
bytes nonEmptyBytes = 17 [(require.nonEmpty) = true];
repeated string nonEmptyList = 18 [(require.nonEmpty) = true];
optional Color colorOptional = 19 [(require.specified) = true];
Color color = 20 [(require.specified) = true];
int32 i32 = 21 [(require.range).max = 100];
uint32 ui32 = 22 [(require.range).max = 100];
int32 i32range = 23 [(require.range) = {min: 10, max: 20}];
optional int32 i32OptRange = 24 [(require.range) = {min: 10, max: 20}];
message RequirePresentMessage {}
RequirePresentMessage presentMessage = 25 [(require.present) = true];
optional RequirePresentMessage optionalPresentMessage = 26 [(require.present) = true];
}
message MessageWithInvalidRangeConstraint {
int32 i32 = 1 [(require.range) = {min: 10, max: 5}];
}
enum Color {
COLOR_UNSPECIFIED = 0;
COLOR_RED = 1;
COLOR_GREEN = 2;
COLOR_BLUE = 3;
}
message ValidationsResponse {
}