junobuild-satellite 0.0.21-patch.4

Extend Juno satellite functionality.
Documentation
type AssetEncodingNoContent = record {
  modified : nat64;
  sha256 : blob;
  total_length : nat;
};
type AssetKey = record {
  token : opt text;
  collection : text;
  owner : principal;
  name : text;
  description : opt text;
  full_path : text;
};
type AssetNoContent = record {
  key : AssetKey;
  updated_at : nat64;
  encodings : vec record { text; AssetEncodingNoContent };
  headers : vec record { text; text };
  created_at : nat64;
  version : opt nat64;
};
type AuthenticationConfig = record {
  internet_identity : opt AuthenticationConfigInternetIdentity;
};
type AuthenticationConfigInternetIdentity = record {
  derivation_origin : opt text;
};
type CommitBatch = record {
  batch_id : nat;
  headers : vec record { text; text };
  chunk_ids : vec nat;
};
type Config = record {
  db : opt DbConfig;
  authentication : opt AuthenticationConfig;
  storage : StorageConfig;
};
type ConfigMaxMemorySize = record { stable : opt nat64; heap : opt nat64 };
type Controller = record {
  updated_at : nat64;
  metadata : vec record { text; text };
  created_at : nat64;
  scope : ControllerScope;
  expires_at : opt nat64;
};
type ControllerScope = variant { Write; Admin };
type CustomDomain = record {
  updated_at : nat64;
  created_at : nat64;
  version : opt nat64;
  bn_id : opt text;
};
type DbConfig = record { max_memory_size : opt ConfigMaxMemorySize };
type DelDoc = record { version : opt nat64 };
type DelRule = record { version : opt nat64 };
type DeleteControllersArgs = record { controllers : vec principal };
type DepositCyclesArgs = record { cycles : nat; destination_id : principal };
type Doc = record {
  updated_at : nat64;
  owner : principal;
  data : blob;
  description : opt text;
  created_at : nat64;
  version : opt nat64;
};
type HttpRequest = record {
  url : text;
  method : text;
  body : blob;
  headers : vec record { text; text };
  certificate_version : opt nat16;
};
type HttpResponse = record {
  body : blob;
  headers : vec record { text; text };
  streaming_strategy : opt StreamingStrategy;
  status_code : nat16;
};
type InitAssetKey = record {
  token : opt text;
  collection : text;
  name : text;
  description : opt text;
  encoding_type : opt text;
  full_path : text;
};
type InitUploadResult = record { batch_id : nat };
type ListMatcher = record {
  key : opt text;
  updated_at : opt TimestampMatcher;
  description : opt text;
  created_at : opt TimestampMatcher;
};
type ListOrder = record { field : ListOrderField; desc : bool };
type ListOrderField = variant { UpdatedAt; Keys; CreatedAt };
type ListPaginate = record { start_after : opt text; limit : opt nat64 };
type ListParams = record {
  order : opt ListOrder;
  owner : opt principal;
  matcher : opt ListMatcher;
  paginate : opt ListPaginate;
};
type ListResults = record {
  matches_pages : opt nat64;
  matches_length : nat64;
  items_page : opt nat64;
  items : vec record { text; AssetNoContent };
  items_length : nat64;
};
type ListResults_1 = record {
  matches_pages : opt nat64;
  matches_length : nat64;
  items_page : opt nat64;
  items : vec record { text; Doc };
  items_length : nat64;
};
type Memory = variant { Heap; Stable };
type MemorySize = record { stable : nat64; heap : nat64 };
type Permission = variant { Controllers; Private; Public; Managed };
type RateConfig = record { max_tokens : nat64; time_per_token_ns : nat64 };
type Rule = record {
  max_capacity : opt nat32;
  memory : opt Memory;
  updated_at : nat64;
  max_size : opt nat;
  read : Permission;
  created_at : nat64;
  version : opt nat64;
  mutable_permissions : opt bool;
  rate_config : opt RateConfig;
  write : Permission;
};
type RulesType = variant { Db; Storage };
type SetController = record {
  metadata : vec record { text; text };
  scope : ControllerScope;
  expires_at : opt nat64;
};
type SetControllersArgs = record {
  controller : SetController;
  controllers : vec principal;
};
type SetDoc = record {
  data : blob;
  description : opt text;
  version : opt nat64;
};
type SetRule = record {
  max_capacity : opt nat32;
  memory : opt Memory;
  max_size : opt nat;
  read : Permission;
  version : opt nat64;
  mutable_permissions : opt bool;
  rate_config : opt RateConfig;
  write : Permission;
};
type StorageConfig = record {
  iframe : opt StorageConfigIFrame;
  rewrites : vec record { text; text };
  headers : vec record { text; vec record { text; text } };
  max_memory_size : opt ConfigMaxMemorySize;
  raw_access : opt StorageConfigRawAccess;
  redirects : opt vec record { text; StorageConfigRedirect };
};
type StorageConfigIFrame = variant { Deny; AllowAny; SameOrigin };
type StorageConfigRawAccess = variant { Deny; Allow };
type StorageConfigRedirect = record { status_code : nat16; location : text };
type StreamingCallbackHttpResponse = record {
  token : opt StreamingCallbackToken;
  body : blob;
};
type StreamingCallbackToken = record {
  memory : Memory;
  token : opt text;
  sha256 : opt blob;
  headers : vec record { text; text };
  index : nat64;
  encoding_type : text;
  full_path : text;
};
type StreamingStrategy = variant {
  Callback : record {
    token : StreamingCallbackToken;
    callback : func () -> () query;
  };
};
type TimestampMatcher = variant {
  Equal : nat64;
  Between : record { nat64; nat64 };
  GreaterThan : nat64;
  LessThan : nat64;
};
type UploadChunk = record {
  content : blob;
  batch_id : nat;
  order_id : opt nat;
};
type UploadChunkResult = record { chunk_id : nat };
service : () -> {
  commit_asset_upload : (CommitBatch) -> ();
  count_assets : (text, ListParams) -> (nat64) query;
  count_collection_assets : (text) -> (nat64) query;
  count_collection_docs : (text) -> (nat64) query;
  count_docs : (text, ListParams) -> (nat64) query;
  del_asset : (text, text) -> ();
  del_assets : (text) -> ();
  del_controllers : (DeleteControllersArgs) -> (
      vec record { principal; Controller },
    );
  del_custom_domain : (text) -> ();
  del_doc : (text, text, DelDoc) -> ();
  del_docs : (text) -> ();
  del_filtered_assets : (text, ListParams) -> ();
  del_filtered_docs : (text, ListParams) -> ();
  del_many_assets : (vec record { text; text }) -> ();
  del_many_docs : (vec record { text; text; DelDoc }) -> ();
  del_rule : (RulesType, text, DelRule) -> ();
  deposit_cycles : (DepositCyclesArgs) -> ();
  get_asset : (text, text) -> (opt AssetNoContent) query;
  get_auth_config : () -> (opt AuthenticationConfig) query;
  get_config : () -> (Config);
  get_db_config : () -> (opt DbConfig) query;
  get_doc : (text, text) -> (opt Doc) query;
  get_many_assets : (vec record { text; text }) -> (
      vec record { text; opt AssetNoContent },
    ) query;
  get_many_docs : (vec record { text; text }) -> (
      vec record { text; opt Doc },
    ) query;
  get_rule : (RulesType, text) -> (opt Rule) query;
  get_storage_config : () -> (StorageConfig) query;
  http_request : (HttpRequest) -> (HttpResponse) query;
  http_request_streaming_callback : (StreamingCallbackToken) -> (
      StreamingCallbackHttpResponse,
    ) query;
  init_asset_upload : (InitAssetKey) -> (InitUploadResult);
  list_assets : (text, ListParams) -> (ListResults) query;
  list_controllers : () -> (vec record { principal; Controller }) query;
  list_custom_domains : () -> (vec record { text; CustomDomain }) query;
  list_docs : (text, ListParams) -> (ListResults_1) query;
  list_rules : (RulesType) -> (vec record { text; Rule }) query;
  memory_size : () -> (MemorySize) query;
  set_auth_config : (AuthenticationConfig) -> ();
  set_controllers : (SetControllersArgs) -> (
      vec record { principal; Controller },
    );
  set_custom_domain : (text, opt text) -> ();
  set_db_config : (DbConfig) -> ();
  set_doc : (text, text, SetDoc) -> (Doc);
  set_many_docs : (vec record { text; text; SetDoc }) -> (
      vec record { text; Doc },
    );
  set_rule : (RulesType, text, SetRule) -> (Rule);
  set_storage_config : (StorageConfig) -> ();
  upload_asset_chunk : (UploadChunk) -> (UploadChunkResult);
  version : () -> (text) query;
}