blob: ed60a0d4bba6967483ae9a2659a6a38384ac381d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
syntax = "proto3";
package authzed.api.v1;
option go_package = "github.com/authzed/authzed-go/proto/authzed/api/v1";
option java_package = "com.authzed.api.v1";
import "google/api/annotations.proto";
import "validate/validate.proto";
// SchemaService implements operations on a Permissions System's Schema.
service SchemaService {
// Read returns the current Object Definitions for a Permissions System.
//
// Errors include:
// - INVALID_ARGUMENT: a provided value has failed to semantically validate
// - NOT_FOUND: no schema has been defined
rpc ReadSchema(ReadSchemaRequest) returns (ReadSchemaResponse) {
option (google.api.http) = {
post: "/v1/schema/read"
body: "*"
};
}
// Write overwrites the current Object Definitions for a Permissions System.
rpc WriteSchema(WriteSchemaRequest) returns (WriteSchemaResponse) {
option (google.api.http) = {
post: "/v1/schema/write"
body: "*"
};
}
}
// ReadSchemaRequest returns the schema from the database.
message ReadSchemaRequest {}
// ReadSchemaResponse is the resulting data after having read the Object
// Definitions from a Schema.
message ReadSchemaResponse {
// schema_text is the textual form of the current schema in the system
string schema_text = 1;
}
// WriteSchemaRequest is the required data used to "upsert" the Schema of a
// Permissions System.
message WriteSchemaRequest {
// The Schema containing one or more Object Definitions that will be written
// to the Permissions System.
string schema = 1 [ (validate.rules).string.max_bytes = 262144 ]; // 256KiB
}
// WriteSchemaResponse is the resulting data after having written a Schema to
// a Permissions System.
message WriteSchemaResponse {}
|