@@ -9,6 +9,7 @@ type AddMessageOutput = record {
99 created_at : nat64;
1010 channel : nat32;
1111};
12+ type CanisterKind = variant { OssBucket; OssCluster };
1213type CanisterStatusResponse = record {
1314 status : CanisterStatusType;
1415 memory_size : nat;
@@ -38,6 +39,12 @@ type ChannelECDHInput = record {
3839 ecdh_remote : opt record { blob; blob };
3940 ecdh_pub : opt blob;
4041};
42+ type ChannelFilesState = record {
43+ files_size_total : nat64;
44+ file_max_size : nat64;
45+ files_total : nat64;
46+ file_storage : record { principal; nat32 };
47+ };
4148type ChannelInfo = record {
4249 id : nat32;
4350 dek : blob;
@@ -61,6 +68,7 @@ type ChannelInfo = record {
6168 latest_message_at : nat64;
6269 latest_message_by : principal;
6370 latest_message_id : nat32;
71+ files_state : opt ChannelFilesState;
6472 my_setting : ChannelSetting;
6573};
6674type ChannelSetting = record {
@@ -96,6 +104,10 @@ type DefiniteCanisterSettings = record {
96104 compute_allocation : nat;
97105};
98106type DeleteMessageInput = record { id : nat32; channel : nat32 };
107+ type DownloadFilesToken = record {
108+ storage : record { principal; nat32 };
109+ access_token : blob;
110+ };
99111type InitArgs = record { managers : vec principal; name : text };
100112type LogVisibility = variant { controllers; public };
101113type Message = record {
@@ -114,22 +126,26 @@ type QueryStats = record {
114126};
115127type Result = variant { Ok : AddMessageOutput; Err : text };
116128type Result_1 = variant { Ok; Err : text };
117- type Result_10 = variant { Ok : record { nat64; opt Message }; Err : text };
118- type Result_11 = variant { Ok : ChannelSetting; Err : text };
119- type Result_12 = variant { Ok : text; Err : text };
129+ type Result_10 = variant { Ok : vec nat32; Err : text };
130+ type Result_11 = variant { Ok : record { nat64; opt Message }; Err : text };
131+ type Result_12 = variant { Ok : ChannelSetting; Err : text };
132+ type Result_13 = variant { Ok : UploadFileOutput; Err : text };
133+ type Result_14 = variant { Ok : text; Err : text };
120134type Result_2 = variant { Ok : ChannelInfo; Err : text };
121135type Result_3 = variant { Ok : vec ChannelBasicInfo; Err : text };
122- type Result_4 = variant { Ok : CanisterStatusResponse ; Err : text };
123- type Result_5 = variant { Ok : opt ChannelInfo ; Err : text };
124- type Result_6 = variant { Ok : Message ; Err : text };
125- type Result_7 = variant { Ok : StateInfo ; Err : text };
126- type Result_8 = variant { Ok : vec Message ; Err : text };
127- type Result_9 = variant { Ok : vec nat32 ; Err : text };
136+ type Result_4 = variant { Ok : DownloadFilesToken ; Err : text };
137+ type Result_5 = variant { Ok : CanisterStatusResponse ; Err : text };
138+ type Result_6 = variant { Ok : opt ChannelInfo ; Err : text };
139+ type Result_7 = variant { Ok : Message ; Err : text };
140+ type Result_8 = variant { Ok : StateInfo ; Err : text };
141+ type Result_9 = variant { Ok : vec Message ; Err : text };
128142type StateInfo = record {
129143 channel_id : nat32;
130144 incoming_gas : nat;
131145 managers : vec principal;
132146 name : text;
147+ ic_oss_cluster : opt principal;
148+ ic_oss_buckets : vec principal;
133149 burned_gas : nat;
134150 channels_total : nat64;
135151 messages_total : nat64;
@@ -146,37 +162,55 @@ type UpdateChannelMemberInput = record {
146162 member : principal;
147163 ecdh : ChannelECDHInput;
148164};
165+ type UpdateChannelStorageInput = record { id : nat32; file_max_size : nat64 };
149166type UpdateMySettingInput = record {
150167 id : nat32;
151168 ecdh : opt ChannelECDHInput;
152169 mute : opt bool;
153170 last_read : opt nat32;
154171};
155172type UpgradeArgs = record { managers : opt vec principal; name : opt text };
173+ type UploadFileInput = record {
174+ size : nat64;
175+ content_type : text;
176+ channel : nat32;
177+ };
178+ type UploadFileOutput = record {
179+ id : nat32;
180+ storage : record { principal; nat32 };
181+ name : text;
182+ access_token : blob;
183+ };
156184service : (opt ChainArgs) -> {
157185 add_message : (AddMessageInput) -> (Result);
186+ admin_add_canister : (CanisterKind, principal) -> (Result_1);
158187 admin_add_managers : (vec principal) -> (Result_1);
159188 admin_create_channel : (CreateChannelInput) -> (Result_2);
160189 admin_remove_managers : (vec principal) -> (Result_1);
161190 admin_topup_channel : (ChannelTopupInput) -> (Result_2);
162191 batch_get_channels : (vec nat32) -> (Result_3) query;
163192 delete_message : (DeleteMessageInput) -> (Result_1);
164- get_canister_status : () -> (Result_4) query;
165- get_channel_if_update : (nat32, nat64) -> (Result_5) query;
166- get_message : (nat32, nat32) -> (Result_6) query;
167- get_state : () -> (Result_7) query;
193+ download_files_token : (nat32) -> (Result_4);
194+ get_canister_status : () -> (Result_5) query;
195+ get_channel_if_update : (nat32, nat64) -> (Result_6) query;
196+ get_message : (nat32, nat32) -> (Result_7) query;
197+ get_state : () -> (Result_8) query;
168198 leave_channel : (UpdateMySettingInput, bool) -> (Result_1);
169- list_messages : (nat32, opt nat32, opt nat32) -> (Result_8 ) query;
170- my_channel_ids : () -> (Result_9 ) query;
199+ list_messages : (nat32, opt nat32, opt nat32) -> (Result_9 ) query;
200+ my_channel_ids : () -> (Result_10 ) query;
171201 my_channels_if_update : (opt nat64) -> (Result_3) query;
172202 remove_member : (UpdateChannelMemberInput) -> (Result_1);
173203 truncate_messages : (TruncateMessageInput) -> (Result_1);
174- update_channel : (UpdateChannelInput) -> (Result_6);
175- update_manager : (UpdateChannelMemberInput) -> (Result_10);
176- update_member : (UpdateChannelMemberInput) -> (Result_10);
177- update_my_setting : (UpdateMySettingInput) -> (Result_11);
178- validate2_admin_add_managers : (vec principal) -> (Result_12);
179- validate2_admin_remove_managers : (vec principal) -> (Result_12);
204+ update_channel : (UpdateChannelInput) -> (Result_7);
205+ update_manager : (UpdateChannelMemberInput) -> (Result_11);
206+ update_member : (UpdateChannelMemberInput) -> (Result_11);
207+ update_my_setting : (UpdateMySettingInput) -> (Result_12);
208+ update_storage : (UpdateChannelStorageInput) -> (Result_7);
209+ upload_file_token : (UploadFileInput) -> (Result_13);
210+ upload_image_token : (UploadFileInput) -> (Result_13);
211+ validate2_admin_add_managers : (vec principal) -> (Result_14);
212+ validate2_admin_remove_managers : (vec principal) -> (Result_14);
213+ validate_admin_add_canister : (CanisterKind, principal) -> (Result_14);
180214 validate_admin_add_managers : (vec principal) -> (Result_1);
181215 validate_admin_remove_managers : (vec principal) -> (Result_1);
182216}
0 commit comments