@@ -28,6 +28,13 @@ const IcpFeatureSchema = z.literal('DefaultConfig');
2828
2929const SubnetInstructionConfigSchema = z . enum ( [ 'Production' , 'Benchmarking' ] ) ;
3030
31+ const CanisterCyclesCostScheduleSchema = z . enum ( [ 'Normal' , 'Free' ] ) ;
32+
33+ const RawPrincipalIdSchema = z . strictObject ( {
34+ // base64-encoded string
35+ principal_id : z . string ( )
36+ } ) ;
37+
3138const BlobIdSchema = z . string ( ) ;
3239const SubnetStateConfigSchema = z . union ( [
3340 z . literal ( 'New' ) ,
@@ -42,7 +49,9 @@ const InitialTimeSchema = z.union([
4249
4350const SubnetSpecSchema = z . strictObject ( {
4451 state_config : SubnetStateConfigSchema ,
45- instruction_config : SubnetInstructionConfigSchema
52+ instruction_config : SubnetInstructionConfigSchema ,
53+ subnet_admins : zNullable ( z . array ( RawPrincipalIdSchema ) ) ,
54+ cost_schedule : CanisterCyclesCostScheduleSchema . default ( 'Normal' )
4655} ) ;
4756
4857const ExtendedSubnetConfigSetSchema = z . strictObject ( {
@@ -53,19 +62,20 @@ const ExtendedSubnetConfigSetSchema = z.strictObject({
5362 bitcoin : zNullable ( SubnetSpecSchema ) ,
5463 system : z . array ( SubnetSpecSchema ) ,
5564 application : z . array ( SubnetSpecSchema ) ,
65+ cloud_engine : z . array ( SubnetSpecSchema ) . default ( [ ] ) ,
5666 verified_application : z . array ( SubnetSpecSchema )
5767} ) ;
5868
5969const InstanceHttpGatewayConfigSchema = z . strictObject ( {
6070 ip_addr : zNullable ( z . string ( ) ) ,
6171 port : zNullable ( z . number ( ) . int ( ) . min ( 0 ) . max ( 65535 ) ) ,
6272 domains : zNullable ( z . array ( z . string ( ) ) ) ,
63- https_config : zNullable ( HttpsConfigSchema )
73+ https_config : zNullable ( HttpsConfigSchema ) ,
74+ domain_custom_provider_local_file : zNullable ( z . string ( ) )
6475} ) ;
6576
6677const IcpConfigSchema = z . strictObject ( {
6778 beta_features : zNullable ( IcpConfigFlagSchema ) ,
68- canister_backtrace : zNullable ( IcpConfigFlagSchema ) ,
6979 function_name_length_limits : zNullable ( IcpConfigFlagSchema ) ,
7080 canister_execution_rate_limiting : zNullable ( IcpConfigFlagSchema )
7181} ) ;
@@ -78,7 +88,10 @@ export const IcpFeaturesSchema = z.strictObject({
7888 nns_governance : zNullable ( IcpFeatureSchema ) ,
7989 sns : zNullable ( IcpFeatureSchema ) ,
8090 ii : zNullable ( IcpFeatureSchema ) ,
81- nns_ui : zNullable ( IcpFeatureSchema )
91+ nns_ui : zNullable ( IcpFeatureSchema ) ,
92+ bitcoin : zNullable ( IcpFeatureSchema ) ,
93+ dogecoin : zNullable ( IcpFeatureSchema ) ,
94+ canister_migration : zNullable ( IcpFeatureSchema )
8295} ) ;
8396
8497const IncompleteStateSchema = z . enum ( [ 'Disabled' , 'Enabled' ] ) ;
@@ -90,9 +103,12 @@ export const InstanceConfigSchema = z.strictObject({
90103 icp_config : zNullable ( IcpConfigSchema ) ,
91104 log_level : zNullable ( z . string ( ) ) ,
92105 bitcoind_addr : zNullable ( z . array ( SocketAddrSchema ) ) ,
106+ dogecoind_addr : zNullable ( z . array ( SocketAddrSchema ) ) ,
93107 icp_features : zNullable ( IcpFeaturesSchema ) ,
94108 incomplete_state : zNullable ( IncompleteStateSchema ) ,
95- initial_time : zNullable ( InitialTimeSchema )
109+ initial_time : zNullable ( InitialTimeSchema ) ,
110+ mainnet_nns_subnet_id : zNullable ( z . boolean ( ) ) ,
111+ disable_ingress_validation : zNullable ( z . boolean ( ) )
96112} ) ;
97113
98114export type InstanceHttpGatewayConfig = z . infer < typeof InstanceHttpGatewayConfigSchema > ;
0 commit comments