summaryrefslogtreecommitdiff
path: root/api/nc0/clawflake/generator/v3/generator.proto
diff options
context:
space:
mode:
Diffstat (limited to 'api/nc0/clawflake/generator/v3/generator.proto')
-rw-r--r--api/nc0/clawflake/generator/v3/generator.proto40
1 files changed, 40 insertions, 0 deletions
diff --git a/api/nc0/clawflake/generator/v3/generator.proto b/api/nc0/clawflake/generator/v3/generator.proto
new file mode 100644
index 0000000..605790c
--- /dev/null
+++ b/api/nc0/clawflake/generator/v3/generator.proto
@@ -0,0 +1,40 @@
+syntax = "proto3";
+
+package nc0.clawflake.generator.v3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+
+option csharp_namespace = "Nc0.Clawflake.Generator.V3";
+option go_package = "go.nc0.fr/clawflake/api/nc0/clawflake/generator/v3";
+option java_package = "fr.nc0.clawflake.generator.v3";
+option java_multiple_files = true;
+option java_outer_classname = "GeneratorProto";
+
+// The generator service allows requesting a new ID.
+service GeneratorService {
+ // Generate ID numbers.
+ rpc Generate(GenerateRequest) returns (GenerateResponse) {
+ option (google.api.http) = {
+ post: "/v3/ids:generate"
+ body: "*"
+ };
+ option (google.api.method_signature) = "amount";
+ }
+}
+
+// The request of a Generate RPC.
+message GenerateRequest {
+ // The amount of ID numbers to generate.
+ // The value should be in the interval [1, 4096].
+ // Values not in the interval will not be coerced and the request will be
+ // aborted.
+ uint32 amount = 1 [(google.api.field_behavior) = REQUIRED];
+}
+
+// The response of a Generate RPC.
+message GenerateResponse {
+ // The generate ID numbers.
+ repeated string id_numbers = 1 [(google.api.field_behavior) = UNORDERED_LIST];
+} \ No newline at end of file