-
Notifications
You must be signed in to change notification settings - Fork 4
/
api.proto
121 lines (95 loc) · 2.46 KB
/
api.proto
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
syntax = "proto3";
package volume.v1alpha1;
option go_package = "github.com/ironcore-dev/ironcore/iri/apis/volume/v1alpha1";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
import "github.com/ironcore-dev/ironcore/iri/apis/meta/v1alpha1/api.proto";
option (gogoproto.goproto_stringer_all) = false;
option (gogoproto.stringer_all) = true;
option (gogoproto.goproto_getters_all) = true;
option (gogoproto.marshaler_all) = true;
option (gogoproto.sizer_all) = true;
option (gogoproto.unmarshaler_all) = true;
option (gogoproto.goproto_unrecognized_all) = false;
service VolumeRuntime {
rpc ListVolumes(ListVolumesRequest) returns (ListVolumesResponse) {};
rpc CreateVolume(CreateVolumeRequest) returns (CreateVolumeResponse) {};
rpc ExpandVolume(ExpandVolumeRequest) returns (ExpandVolumeResponse) {};
rpc DeleteVolume(DeleteVolumeRequest) returns (DeleteVolumeResponse) {};
rpc Status(StatusRequest) returns (StatusResponse) {};
}
message VolumeFilter {
string id = 1;
map<string, string> label_selector = 2;
}
message VolumeResources {
int64 storage_bytes = 1;
}
message EncryptionSpec {
map<string, bytes> secret_data = 1;
}
message VolumeSpec {
string image = 1;
string class = 2;
VolumeResources resources = 3;
EncryptionSpec encryption = 4;
}
message VolumeStatus {
VolumeState state = 1;
VolumeAccess access = 2;
}
message Volume {
meta.v1alpha1.ObjectMetadata metadata = 1;
VolumeSpec spec = 2;
VolumeStatus status = 3;
}
message VolumeClassCapabilities {
int64 tps = 1;
int64 iops = 2;
}
message VolumeClass {
string name = 1;
VolumeClassCapabilities capabilities = 2;
}
message VolumeClassStatus {
VolumeClass volume_class = 1;
int64 quantity = 2;
}
message VolumeAccess {
string driver = 1;
string handle = 2;
map<string, string> attributes = 3;
map<string, bytes> secret_data = 4;
}
enum VolumeState {
VOLUME_PENDING = 0;
VOLUME_AVAILABLE = 1;
VOLUME_ERROR = 2;
}
message ListVolumesRequest {
VolumeFilter filter = 1;
}
message ListVolumesResponse {
repeated Volume volumes = 1;
}
message CreateVolumeRequest {
Volume volume = 1;
}
message ExpandVolumeRequest {
string volume_id = 1;
VolumeResources resources = 2;
}
message CreateVolumeResponse {
Volume volume = 1;
}
message ExpandVolumeResponse {
}
message DeleteVolumeRequest {
string volume_id = 1;
}
message DeleteVolumeResponse {
}
message StatusRequest {
}
message StatusResponse {
repeated VolumeClassStatus volume_class_status = 1;
}