export const idlFactory = ({ IDL }) => {
const CommitBatch = IDL.Record({
'batch_id' : IDL.Nat,
'headers' : IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
'chunk_ids' : IDL.Vec(IDL.Nat),
});
const ListOrderField = IDL.Variant({
'UpdatedAt' : IDL.Null,
'Keys' : IDL.Null,
'CreatedAt' : IDL.Null,
});
const ListOrder = IDL.Record({ 'field' : ListOrderField, 'desc' : IDL.Bool });
const TimestampMatcher = IDL.Variant({
'Equal' : IDL.Nat64,
'Between' : IDL.Tuple(IDL.Nat64, IDL.Nat64),
'GreaterThan' : IDL.Nat64,
'LessThan' : IDL.Nat64,
});
const ListMatcher = IDL.Record({
'key' : IDL.Opt(IDL.Text),
'updated_at' : IDL.Opt(TimestampMatcher),
'description' : IDL.Opt(IDL.Text),
'created_at' : IDL.Opt(TimestampMatcher),
});
const ListPaginate = IDL.Record({
'start_after' : IDL.Opt(IDL.Text),
'limit' : IDL.Opt(IDL.Nat64),
});
const ListParams = IDL.Record({
'order' : IDL.Opt(ListOrder),
'owner' : IDL.Opt(IDL.Principal),
'matcher' : IDL.Opt(ListMatcher),
'paginate' : IDL.Opt(ListPaginate),
});
const DeleteControllersArgs = IDL.Record({
'controllers' : IDL.Vec(IDL.Principal),
});
const ControllerScope = IDL.Variant({
'Write' : IDL.Null,
'Admin' : IDL.Null,
});
const Controller = IDL.Record({
'updated_at' : IDL.Nat64,
'metadata' : IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
'created_at' : IDL.Nat64,
'scope' : ControllerScope,
'expires_at' : IDL.Opt(IDL.Nat64),
});
const DelDoc = IDL.Record({ 'version' : IDL.Opt(IDL.Nat64) });
const RulesType = IDL.Variant({ 'Db' : IDL.Null, 'Storage' : IDL.Null });
const DelRule = IDL.Record({ 'version' : IDL.Opt(IDL.Nat64) });
const DepositCyclesArgs = IDL.Record({
'cycles' : IDL.Nat,
'destination_id' : IDL.Principal,
});
const AssetKey = IDL.Record({
'token' : IDL.Opt(IDL.Text),
'collection' : IDL.Text,
'owner' : IDL.Principal,
'name' : IDL.Text,
'description' : IDL.Opt(IDL.Text),
'full_path' : IDL.Text,
});
const AssetEncodingNoContent = IDL.Record({
'modified' : IDL.Nat64,
'sha256' : IDL.Vec(IDL.Nat8),
'total_length' : IDL.Nat,
});
const AssetNoContent = IDL.Record({
'key' : AssetKey,
'updated_at' : IDL.Nat64,
'encodings' : IDL.Vec(IDL.Tuple(IDL.Text, AssetEncodingNoContent)),
'headers' : IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
'created_at' : IDL.Nat64,
'version' : IDL.Opt(IDL.Nat64),
});
const AuthenticationConfigInternetIdentity = IDL.Record({
'derivation_origin' : IDL.Opt(IDL.Text),
});
const AuthenticationConfig = IDL.Record({
'internet_identity' : IDL.Opt(AuthenticationConfigInternetIdentity),
});
const ConfigMaxMemorySize = IDL.Record({
'stable' : IDL.Opt(IDL.Nat64),
'heap' : IDL.Opt(IDL.Nat64),
});
const DbConfig = IDL.Record({
'max_memory_size' : IDL.Opt(ConfigMaxMemorySize),
});
const StorageConfigIFrame = IDL.Variant({
'Deny' : IDL.Null,
'AllowAny' : IDL.Null,
'SameOrigin' : IDL.Null,
});
const StorageConfigRawAccess = IDL.Variant({
'Deny' : IDL.Null,
'Allow' : IDL.Null,
});
const StorageConfigRedirect = IDL.Record({
'status_code' : IDL.Nat16,
'location' : IDL.Text,
});
const StorageConfig = IDL.Record({
'iframe' : IDL.Opt(StorageConfigIFrame),
'rewrites' : IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
'headers' : IDL.Vec(
IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)))
),
'max_memory_size' : IDL.Opt(ConfigMaxMemorySize),
'raw_access' : IDL.Opt(StorageConfigRawAccess),
'redirects' : IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, StorageConfigRedirect))),
});
const Config = IDL.Record({
'db' : IDL.Opt(DbConfig),
'authentication' : IDL.Opt(AuthenticationConfig),
'storage' : StorageConfig,
});
const Doc = IDL.Record({
'updated_at' : IDL.Nat64,
'owner' : IDL.Principal,
'data' : IDL.Vec(IDL.Nat8),
'description' : IDL.Opt(IDL.Text),
'created_at' : IDL.Nat64,
'version' : IDL.Opt(IDL.Nat64),
});
const HttpRequest = IDL.Record({
'url' : IDL.Text,
'method' : IDL.Text,
'body' : IDL.Vec(IDL.Nat8),
'headers' : IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
'certificate_version' : IDL.Opt(IDL.Nat16),
});
const Memory = IDL.Variant({ 'Heap' : IDL.Null, 'Stable' : IDL.Null });
const StreamingCallbackToken = IDL.Record({
'memory' : Memory,
'token' : IDL.Opt(IDL.Text),
'sha256' : IDL.Opt(IDL.Vec(IDL.Nat8)),
'headers' : IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
'index' : IDL.Nat64,
'encoding_type' : IDL.Text,
'full_path' : IDL.Text,
});
const StreamingStrategy = IDL.Variant({
'Callback' : IDL.Record({
'token' : StreamingCallbackToken,
'callback' : IDL.Func([], [], ['query']),
}),
});
const HttpResponse = IDL.Record({
'body' : IDL.Vec(IDL.Nat8),
'headers' : IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
'streaming_strategy' : IDL.Opt(StreamingStrategy),
'status_code' : IDL.Nat16,
});
const StreamingCallbackHttpResponse = IDL.Record({
'token' : IDL.Opt(StreamingCallbackToken),
'body' : IDL.Vec(IDL.Nat8),
});
const InitAssetKey = IDL.Record({
'token' : IDL.Opt(IDL.Text),
'collection' : IDL.Text,
'name' : IDL.Text,
'description' : IDL.Opt(IDL.Text),
'encoding_type' : IDL.Opt(IDL.Text),
'full_path' : IDL.Text,
});
const InitUploadResult = IDL.Record({ 'batch_id' : IDL.Nat });
const ListResults = IDL.Record({
'matches_pages' : IDL.Opt(IDL.Nat64),
'matches_length' : IDL.Nat64,
'items_page' : IDL.Opt(IDL.Nat64),
'items' : IDL.Vec(IDL.Tuple(IDL.Text, AssetNoContent)),
'items_length' : IDL.Nat64,
});
const CustomDomain = IDL.Record({
'updated_at' : IDL.Nat64,
'created_at' : IDL.Nat64,
'version' : IDL.Opt(IDL.Nat64),
'bn_id' : IDL.Opt(IDL.Text),
});
const ListResults_1 = IDL.Record({
'matches_pages' : IDL.Opt(IDL.Nat64),
'matches_length' : IDL.Nat64,
'items_page' : IDL.Opt(IDL.Nat64),
'items' : IDL.Vec(IDL.Tuple(IDL.Text, Doc)),
'items_length' : IDL.Nat64,
});
const Permission = IDL.Variant({
'Controllers' : IDL.Null,
'Private' : IDL.Null,
'Public' : IDL.Null,
'Managed' : IDL.Null,
});
const Rule = IDL.Record({
'max_capacity' : IDL.Opt(IDL.Nat32),
'memory' : IDL.Opt(Memory),
'updated_at' : IDL.Nat64,
'max_size' : IDL.Opt(IDL.Nat),
'read' : Permission,
'created_at' : IDL.Nat64,
'version' : IDL.Opt(IDL.Nat64),
'mutable_permissions' : IDL.Opt(IDL.Bool),
'write' : Permission,
});
const MemorySize = IDL.Record({ 'stable' : IDL.Nat64, 'heap' : IDL.Nat64 });
const SetController = IDL.Record({
'metadata' : IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
'scope' : ControllerScope,
'expires_at' : IDL.Opt(IDL.Nat64),
});
const SetControllersArgs = IDL.Record({
'controller' : SetController,
'controllers' : IDL.Vec(IDL.Principal),
});
const SetDoc = IDL.Record({
'data' : IDL.Vec(IDL.Nat8),
'description' : IDL.Opt(IDL.Text),
'version' : IDL.Opt(IDL.Nat64),
});
const SetRule = IDL.Record({
'max_capacity' : IDL.Opt(IDL.Nat32),
'memory' : IDL.Opt(Memory),
'max_size' : IDL.Opt(IDL.Nat),
'read' : Permission,
'version' : IDL.Opt(IDL.Nat64),
'mutable_permissions' : IDL.Opt(IDL.Bool),
'write' : Permission,
});
const UploadChunk = IDL.Record({
'content' : IDL.Vec(IDL.Nat8),
'batch_id' : IDL.Nat,
'order_id' : IDL.Opt(IDL.Nat),
});
const UploadChunkResult = IDL.Record({ 'chunk_id' : IDL.Nat });
const DemoArg = IDL.Record({ 'status' : IDL.Text, 'message' : IDL.Text });
const Result = IDL.Variant({ 'Ok' : IDL.Text, 'Err' : IDL.Text });
return IDL.Service({
'commit_asset_upload' : IDL.Func([CommitBatch], [], []),
'count_assets' : IDL.Func([IDL.Text, ListParams], [IDL.Nat64], ['query']),
'count_collection_assets' : IDL.Func([IDL.Text], [IDL.Nat64], ['query']),
'count_collection_docs' : IDL.Func([IDL.Text], [IDL.Nat64], ['query']),
'count_docs' : IDL.Func([IDL.Text, ListParams], [IDL.Nat64], ['query']),
'del_asset' : IDL.Func([IDL.Text, IDL.Text], [], []),
'del_assets' : IDL.Func([IDL.Text], [], []),
'del_controllers' : IDL.Func(
[DeleteControllersArgs],
[IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],
[],
),
'del_custom_domain' : IDL.Func([IDL.Text], [], []),
'del_doc' : IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),
'del_docs' : IDL.Func([IDL.Text], [], []),
'del_many_assets' : IDL.Func(
[IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],
[],
[],
),
'del_many_docs' : IDL.Func(
[IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, DelDoc))],
[],
[],
),
'del_rule' : IDL.Func([RulesType, IDL.Text, DelRule], [], []),
'deposit_cycles' : IDL.Func([DepositCyclesArgs], [], []),
'get_asset' : IDL.Func(
[IDL.Text, IDL.Text],
[IDL.Opt(AssetNoContent)],
['query'],
),
'get_auth_config' : IDL.Func(
[],
[IDL.Opt(AuthenticationConfig)],
['query'],
),
'get_config' : IDL.Func([], [Config], []),
'get_db_config' : IDL.Func([], [IDL.Opt(DbConfig)], ['query']),
'get_doc' : IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),
'get_many_assets' : IDL.Func(
[IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],
[IDL.Vec(IDL.Tuple(IDL.Text, IDL.Opt(AssetNoContent)))],
['query'],
),
'get_many_docs' : IDL.Func(
[IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],
[IDL.Vec(IDL.Tuple(IDL.Text, IDL.Opt(Doc)))],
['query'],
),
'get_storage_config' : IDL.Func([], [StorageConfig], ['query']),
'http_request' : IDL.Func([HttpRequest], [HttpResponse], ['query']),
'http_request_streaming_callback' : IDL.Func(
[StreamingCallbackToken],
[StreamingCallbackHttpResponse],
['query'],
),
'init_asset_upload' : IDL.Func([InitAssetKey], [InitUploadResult], []),
'list_assets' : IDL.Func([IDL.Text, ListParams], [ListResults], ['query']),
'list_controllers' : IDL.Func(
[],
[IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],
['query'],
),
'list_custom_domains' : IDL.Func(
[],
[IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))],
['query'],
),
'list_docs' : IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']),
'list_rules' : IDL.Func(
[RulesType],
[IDL.Vec(IDL.Tuple(IDL.Text, Rule))],
['query'],
),
'memory_size' : IDL.Func([], [MemorySize], ['query']),
'set_auth_config' : IDL.Func([AuthenticationConfig], [], []),
'set_controllers' : IDL.Func(
[SetControllersArgs],
[IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],
[],
),
'set_custom_domain' : IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),
'set_db_config' : IDL.Func([DbConfig], [], []),
'set_doc' : IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),
'set_many_docs' : IDL.Func(
[IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, SetDoc))],
[IDL.Vec(IDL.Tuple(IDL.Text, Doc))],
[],
),
'set_rule' : IDL.Func([RulesType, IDL.Text, SetRule], [], []),
'set_storage_config' : IDL.Func([StorageConfig], [], []),
'upload_asset_chunk' : IDL.Func([UploadChunk], [UploadChunkResult], []),
'version' : IDL.Func([], [IDL.Text], ['query']),
'demo' : IDL.Func([DemoArg], [Result], ['query']),
'say' : IDL.Func([], [], ['query']),
});
};
export const init = ({ IDL }) => { return []; };