canic_core/api/lifecycle/
nonroot.rs1use crate::{
2 config::schema::ConfigModel,
3 dto::{abi::v1::CanisterInitPayload, env::EnvBootstrapArgs},
4 ids::{CanisterRole, ManagedCanisterBinding},
5 lifecycle,
6};
7
8pub struct LifecycleApi;
13
14impl LifecycleApi {
15 pub fn managed_binding() -> Result<ManagedCanisterBinding, crate::dto::error::Error> {
17 crate::ops::runtime::env::EnvOps::managed_binding().map_err(Into::into)
18 }
19
20 pub fn init_nonroot_canister_before_bootstrap(
21 role: CanisterRole,
22 payload: CanisterInitPayload,
23 application_init_args: Option<Vec<u8>>,
24 config: ConfigModel,
25 config_source: &str,
26 config_path: &str,
27 ) {
28 lifecycle::init::nonroot::init_nonroot_canister_before_bootstrap(
29 role,
30 payload,
31 application_init_args,
32 config,
33 config_source,
34 config_path,
35 );
36 }
37
38 pub fn schedule_init_nonroot_bootstrap() {
39 lifecycle::init::nonroot::schedule_init_nonroot_bootstrap();
40 }
41
42 pub fn init_local_nonroot_canister_before_bootstrap(
43 role: CanisterRole,
44 env: EnvBootstrapArgs,
45 config: ConfigModel,
46 config_source: &str,
47 config_path: &str,
48 ) {
49 lifecycle::init::nonroot::init_local_nonroot_canister_before_bootstrap(
50 role,
51 env,
52 config,
53 config_source,
54 config_path,
55 );
56 }
57
58 #[must_use]
59 pub fn post_upgrade_nonroot_canister_before_bootstrap(
60 role: CanisterRole,
61 config: ConfigModel,
62 config_source: &str,
63 config_path: &str,
64 ) -> bool {
65 lifecycle::upgrade::nonroot::post_upgrade_nonroot_canister_before_bootstrap(
66 role,
67 config,
68 config_source,
69 config_path,
70 )
71 }
72
73 pub fn schedule_post_upgrade_nonroot_bootstrap() {
74 lifecycle::upgrade::nonroot::schedule_post_upgrade_nonroot_bootstrap();
75 }
76
77 #[must_use]
78 pub fn post_upgrade_local_nonroot_canister_before_bootstrap(
79 role: CanisterRole,
80 config: ConfigModel,
81 config_source: &str,
82 config_path: &str,
83 ) -> bool {
84 lifecycle::upgrade::nonroot::post_upgrade_local_nonroot_canister_before_bootstrap(
85 role,
86 config,
87 config_source,
88 config_path,
89 )
90 }
91}