canic_core/api/lifecycle/
nonroot.rs1use crate::{
2 config::schema::ConfigModel,
3 dto::{
4 abi::v1::CanisterInitPayload, env::EnvBootstrapArgs,
5 fleet_subnet_root::FleetSubnetWasmStoreInitArgs,
6 },
7 ids::{CanisterRole, ManagedCanisterBinding},
8 lifecycle,
9};
10
11pub struct LifecycleApi;
16
17impl LifecycleApi {
18 #[doc(hidden)]
19 pub fn configure_component_runtime_with_automatic_topup(
20 request: crate::dto::component_registry::ComponentRuntimeDirectoryPreparationRequest,
21 ) -> Result<
22 crate::view::fleet_activation::ComponentRuntimeActivationTransition,
23 crate::dto::error::Error,
24 > {
25 crate::workflow::component_runtime::configure_with_automatic_topup(request)
26 .map_err(Into::into)
27 }
28
29 pub fn managed_binding() -> Result<ManagedCanisterBinding, crate::dto::error::Error> {
31 crate::ops::runtime::env::EnvOps::managed_binding().map_err(Into::into)
32 }
33
34 pub fn init_nonroot_canister_before_bootstrap(
35 role: CanisterRole,
36 payload: CanisterInitPayload,
37 application_init_args: Option<Vec<u8>>,
38 embedded_release_build_id: Option<&str>,
39 config: ConfigModel,
40 config_source: &str,
41 config_path: &str,
42 ) {
43 lifecycle::init::nonroot::init_nonroot_canister_before_bootstrap(
44 role,
45 payload,
46 application_init_args,
47 embedded_release_build_id,
48 config,
49 config_source,
50 config_path,
51 );
52 }
53
54 pub fn init_wasm_store_before_bootstrap(
55 input: FleetSubnetWasmStoreInitArgs,
56 embedded_release_build_id: Option<&str>,
57 config: ConfigModel,
58 config_source: &str,
59 config_path: &str,
60 ) {
61 lifecycle::init::nonroot::init_wasm_store_before_bootstrap(
62 input,
63 embedded_release_build_id,
64 config,
65 config_source,
66 config_path,
67 );
68 }
69
70 pub fn schedule_init_nonroot_bootstrap() {
71 lifecycle::init::nonroot::schedule_init_nonroot_bootstrap();
72 }
73
74 pub fn init_local_nonroot_canister_before_bootstrap(
75 role: CanisterRole,
76 env: EnvBootstrapArgs,
77 config: ConfigModel,
78 config_source: &str,
79 config_path: &str,
80 ) {
81 lifecycle::init::nonroot::init_local_nonroot_canister_before_bootstrap(
82 role,
83 env,
84 config,
85 config_source,
86 config_path,
87 );
88 }
89
90 #[doc(hidden)]
91 pub fn init_local_nonroot_canister_with_automatic_topup_before_bootstrap(
92 role: CanisterRole,
93 env: EnvBootstrapArgs,
94 config: ConfigModel,
95 config_source: &str,
96 config_path: &str,
97 ) {
98 lifecycle::init::nonroot::init_local_nonroot_canister_with_automatic_topup_before_bootstrap(
99 role,
100 env,
101 config,
102 config_source,
103 config_path,
104 );
105 }
106
107 #[must_use]
108 pub fn post_upgrade_nonroot_canister_before_bootstrap(
109 role: CanisterRole,
110 config: ConfigModel,
111 config_source: &str,
112 config_path: &str,
113 ) -> bool {
114 lifecycle::upgrade::nonroot::post_upgrade_nonroot_canister_before_bootstrap(
115 role,
116 config,
117 config_source,
118 config_path,
119 )
120 }
121
122 #[doc(hidden)]
123 #[must_use]
124 pub fn post_upgrade_nonroot_canister_with_automatic_topup_before_bootstrap(
125 role: CanisterRole,
126 config: ConfigModel,
127 config_source: &str,
128 config_path: &str,
129 ) -> bool {
130 lifecycle::upgrade::nonroot::post_upgrade_nonroot_canister_with_automatic_topup_before_bootstrap(
131 role,
132 config,
133 config_source,
134 config_path,
135 )
136 }
137
138 pub fn schedule_post_upgrade_nonroot_bootstrap() {
139 lifecycle::upgrade::nonroot::schedule_post_upgrade_nonroot_bootstrap();
140 }
141
142 #[must_use]
143 pub fn post_upgrade_local_nonroot_canister_before_bootstrap(
144 role: CanisterRole,
145 config: ConfigModel,
146 config_source: &str,
147 config_path: &str,
148 ) -> bool {
149 lifecycle::upgrade::nonroot::post_upgrade_local_nonroot_canister_before_bootstrap(
150 role,
151 config,
152 config_source,
153 config_path,
154 )
155 }
156
157 #[doc(hidden)]
158 #[must_use]
159 pub fn post_upgrade_local_nonroot_canister_with_automatic_topup_before_bootstrap(
160 role: CanisterRole,
161 config: ConfigModel,
162 config_source: &str,
163 config_path: &str,
164 ) -> bool {
165 lifecycle::upgrade::nonroot::post_upgrade_local_nonroot_canister_with_automatic_topup_before_bootstrap(
166 role,
167 config,
168 config_source,
169 config_path,
170 )
171 }
172}