3939SandboxFileSystemEventType = Literal ["chmod" , "create" , "remove" , "rename" , "write" ]
4040SandboxVolumeMountType = Literal ["rw" , "ro" ]
4141SandboxImageBuildInputFormat = Literal ["rootfs_export_tar_gz" ]
42+ SandboxImageBuildSourcePlatform = Literal ["linux/amd64" ]
4243SandboxImageBuildStatus = Literal [
4344 "awaiting_upload" ,
4445 "upload_verified" ,
46+ "dispatching" ,
4547 "building" ,
48+ "verifying" ,
4649 "completed" ,
4750 "failed" ,
4851 "canceled" ,
49- "cancelled" ,
5052]
5153
5254
@@ -147,6 +149,7 @@ class Sandbox(SandboxBaseModel):
147149 cpu : Optional [int ] = Field (default = None , alias = "vcpus" )
148150 memory_mib : Optional [int ] = Field (default = None , alias = "memMiB" )
149151 disk_mib : Optional [int ] = Field (default = None , alias = "diskSizeMiB" )
152+ timeout_minutes : Optional [int ] = Field (default = None , alias = "timeoutMinutes" )
150153 runtime : SandboxRuntimeTarget
151154 exposed_ports : List [SandboxExposeResult ] = Field (
152155 default_factory = list ,
@@ -163,6 +166,7 @@ class Sandbox(SandboxBaseModel):
163166 "cpu" ,
164167 "memory_mib" ,
165168 "disk_mib" ,
169+ "timeout_minutes" ,
166170 mode = "before" ,
167171 )
168172 @classmethod
@@ -194,13 +198,7 @@ def parse_token_expires_at(cls, value):
194198 return _parse_optional_datetime (value )
195199
196200
197- class CreateSandboxParams (SandboxBaseModel ):
198- snapshot_name : Optional [str ] = Field (
199- default = None , serialization_alias = "snapshotName"
200- )
201- snapshot_id : Optional [str ] = Field (default = None , serialization_alias = "snapshotId" )
202- image_name : Optional [str ] = Field (default = None , serialization_alias = "imageName" )
203- image_id : Optional [str ] = Field (default = None , serialization_alias = "imageId" )
201+ class _SandboxLaunchCommonParams (SandboxBaseModel ):
204202 region : Optional [SandboxRegion ] = None
205203 enable_recording : Optional [bool ] = Field (
206204 default = None , serialization_alias = "enableRecording"
@@ -216,18 +214,27 @@ class CreateSandboxParams(SandboxBaseModel):
216214 timeout_minutes : Optional [int ] = Field (
217215 default = None , serialization_alias = "timeoutMinutes"
218216 )
219- cpu : Optional [int ] = Field (default = None , ge = 1 , serialization_alias = "vcpus" )
220- memory_mib : Optional [int ] = Field (default = None , ge = 1 , serialization_alias = "memMiB" )
221- disk_mib : Optional [int ] = Field (
222- default = None , ge = 1 , serialization_alias = "diskSizeMiB"
223- )
224217 allow_internet_access : Optional [bool ] = Field (
225218 default = None ,
226219 serialization_alias = "allowInternetAccess" ,
227220 )
228221 allow_out : Optional [List [str ]] = Field (default = None , serialization_alias = "allowOut" )
229222 deny_out : Optional [List [str ]] = Field (default = None , serialization_alias = "denyOut" )
230223
224+
225+ class CreateSandboxParams (_SandboxLaunchCommonParams ):
226+ snapshot_name : Optional [str ] = Field (
227+ default = None , serialization_alias = "snapshotName"
228+ )
229+ snapshot_id : Optional [str ] = Field (default = None , serialization_alias = "snapshotId" )
230+ image_name : Optional [str ] = Field (default = None , serialization_alias = "imageName" )
231+ image_id : Optional [str ] = Field (default = None , serialization_alias = "imageId" )
232+ cpu : Optional [int ] = Field (default = None , ge = 1 , serialization_alias = "vcpus" )
233+ memory_mib : Optional [int ] = Field (default = None , ge = 1 , serialization_alias = "memMiB" )
234+ disk_mib : Optional [int ] = Field (
235+ default = None , ge = 1 , serialization_alias = "diskSizeMiB"
236+ )
237+
231238 @model_validator (mode = "after" )
232239 def validate_launch_source (self ):
233240 if self .snapshot_id and not self .snapshot_name :
@@ -250,8 +257,11 @@ def validate_launch_source(self):
250257 return self
251258
252259
253- class StartSandboxFromSnapshotParams (CreateSandboxParams ):
254- pass
260+ class StartSandboxFromSnapshotParams (_SandboxLaunchCommonParams ):
261+ model_config = ConfigDict (populate_by_name = True , extra = "forbid" )
262+
263+ snapshot_name : str = Field (min_length = 1 , serialization_alias = "snapshotName" )
264+ snapshot_id : Optional [str ] = Field (default = None , serialization_alias = "snapshotId" )
255265
256266
257267class SandboxListParams (SandboxBaseModel ):
@@ -365,7 +375,7 @@ class CreateSandboxImageBuildParams(SandboxBaseModel):
365375 default = "rootfs_export_tar_gz" ,
366376 serialization_alias = "inputFormat" ,
367377 )
368- source_platform : str = Field (
378+ source_platform : SandboxImageBuildSourcePlatform = Field (
369379 default = "linux/amd64" ,
370380 serialization_alias = "sourcePlatform" ,
371381 )
@@ -378,7 +388,6 @@ class CreateSandboxImageBuildParams(SandboxBaseModel):
378388 serialization_alias = "imageInit" ,
379389 )
380390
381-
382391class CompleteSandboxImageBuildParams (SandboxBaseModel ):
383392 input_sha256 : str = Field (serialization_alias = "inputSha256" )
384393 input_size_bytes : int = Field (serialization_alias = "inputSizeBytes" )
@@ -387,7 +396,6 @@ class CompleteSandboxImageBuildParams(SandboxBaseModel):
387396 serialization_alias = "inputFormat" ,
388397 )
389398
390-
391399class SandboxImageBuildUpload (SandboxBaseModel ):
392400 url : str
393401 method : str
@@ -431,8 +439,8 @@ class SandboxImageBuildCreateResult(SandboxBaseModel):
431439
432440
433441class SandboxImageBuildListParams (SandboxBaseModel ):
434- status : Optional [str ] = None
435- limit : Optional [int ] = Field ( default = None , ge = 1 )
442+ status : Optional [SandboxImageBuildStatus ] = None
443+ limit : Optional [int ] = None
436444
437445
438446class SandboxImageBuildListResponse (SandboxBaseModel ):
0 commit comments