type icsp =
service {
addAdmin: (principal) -> ();
delete: (text) -> ();
deleteAdmin: (principal) -> ();
getAdmins: () -> (vec principal) query;
getAllArFileKey: () -> (vec text) query;
getAllIcFileKey: () -> (vec text) query;
getAllIpfsFileKey: () -> (vec text) query;
getBucketOfFile: (text) -> (opt principal) query;
getBuckets: () -> (opt Buckets) query;
getCycleBalance: () -> (nat) query;
getFieldFileInfos: (nat, nat) -> (vec FileBufExt) query;
getFileInfo: (text) -> (opt FileBufExt) query;
getIcFileNums: () -> (opt nat) query;
getOtherFile: (text, FileLocation__1) -> (opt OtherFile) query;
getVersion: () -> (text) query;
http_request: (HttpRequest) -> (HttpResponse) query;
init: () -> (Result);
recordFile: (OtherFile) -> ();
store: (StoreArgs) -> ();
topUpBucket: (nat) -> ();
updateVersion: (text) -> (bool);
wallet_receive: () -> (nat);
};
type StreamingCallbackHttpResponse =
record {
body: blob;
token: opt CallbackToken;
};
type StreamStrategy = variant {
Callback:
record {
callback:
func (CallbackToken) ->
(StreamingCallbackHttpResponse) query;
token: CallbackToken;
};};
type StoreArgs =
record {
file_type: text;
index: nat;
is_http_open: bool;
key: text;
total_index: nat;
total_size: nat64;
value: blob;
};
type Result =
variant {
err: DataErr;
ok: BucketStatusExt;
};
type OtherFile =
record {
file_key: text;
file_location: FileLocation;
file_type: text;
file_url: text;
};
type HttpResponse =
record {
body: blob;
headers: vec HeaderField;
status_code: nat16;
streaming_strategy: opt StreamStrategy;
};
type HttpRequest =
record {
body: blob;
headers: vec HeaderField;
method: text;
url: text;
};
type HeaderField =
record {
text;
text;
};
type FileLocation__1 =
variant {
Arweave;
IPFS;
};
type FileLocation =
variant {
Arweave;
IPFS;
};
type FileBufExt =
record {
bucket_id: principal;
file_type: text;
is_http_open: bool;
received: nat;
total_index: nat;
total_size: nat64;
wrote_page: vec bool;
};
type DataErr =
variant {
BucketEnough;
CycleNotEnough;
};
type CallbackToken =
record {
index: nat;
key: text;
total_index: nat;
};
type Buckets =
record {
dead_buckets: vec BucketStatusExt__1;
live_buckets: vec BucketStatusExt__1;
};
type BucketStatusExt__1 =
record {
canister_id: principal;
used_memory: nat;
};
type BucketStatusExt =
record {
canister_id: principal;
used_memory: nat;
};
service : () -> icsp