@@ -69,16 +69,16 @@ def upsert_sandbox(
6969 owner_session_id : str | None ,
7070 connect_info : dict [str , Any ],
7171 is_default : bool = False ,
72- status : str = "running" ,
73- idle_timeout : int | float | None = None ,
74- expires_at : float | None = None ,
75- retention_policy : str = "temporary" ,
76- last_used_at : float | None = None ,
77- controller_user_id : str | None = None ,
78- controller_session_id : str | None = None ,
79- lease_expires_at : float | None = None ,
80- labels : dict [str , Any ] | None = None ,
81- notes : str | None = None ,
72+ status : str | object = _UNSET ,
73+ idle_timeout : int | float | None | object = _UNSET ,
74+ expires_at : float | None | object = _UNSET ,
75+ retention_policy : str | object = _UNSET ,
76+ last_used_at : float | None | object = _UNSET ,
77+ controller_user_id : str | None | object = _UNSET ,
78+ controller_session_id : str | None | object = _UNSET ,
79+ lease_expires_at : float | None | object = _UNSET ,
80+ labels : dict [str , Any ] | None | object = _UNSET ,
81+ notes : str | None | object = _UNSET ,
8282 ) -> dict [str , Any ]:
8383 record = self ._payload ["sandboxes" ].get (sandbox_id , {})
8484 record .update (
@@ -92,19 +92,39 @@ def upsert_sandbox(
9292 "is_default" : is_default ,
9393 "owner_user_id" : owner_user_id ,
9494 "owner_session_id" : owner_session_id ,
95- "controller_user_id" : controller_user_id ,
96- "controller_session_id" : controller_session_id ,
97- "lease_expires_at" : lease_expires_at ,
98- "last_used_at" : last_used_at ,
99- "idle_timeout" : idle_timeout ,
100- "expires_at" : expires_at ,
101- "retention_policy" : retention_policy ,
102- "status" : status ,
10395 "connect_info" : deepcopy (connect_info ),
104- "labels" : deepcopy (labels ) if labels is not None else {},
105- "notes" : notes ,
10696 }
10797 )
98+ defaults = {
99+ "controller_user_id" : None ,
100+ "controller_session_id" : None ,
101+ "lease_expires_at" : None ,
102+ "last_used_at" : None ,
103+ "idle_timeout" : None ,
104+ "expires_at" : None ,
105+ "retention_policy" : "temporary" ,
106+ "status" : "running" ,
107+ "labels" : {},
108+ "notes" : None ,
109+ }
110+ updates = {
111+ "controller_user_id" : controller_user_id ,
112+ "controller_session_id" : controller_session_id ,
113+ "lease_expires_at" : lease_expires_at ,
114+ "last_used_at" : last_used_at ,
115+ "idle_timeout" : idle_timeout ,
116+ "expires_at" : expires_at ,
117+ "retention_policy" : retention_policy ,
118+ "status" : status ,
119+ "labels" : deepcopy (labels ) if labels is not _UNSET else _UNSET ,
120+ "notes" : notes ,
121+ }
122+ for field_name , default_value in defaults .items ():
123+ value = updates [field_name ]
124+ if value is _UNSET :
125+ record .setdefault (field_name , deepcopy (default_value ))
126+ else :
127+ record [field_name ] = value
108128 record = SandboxRecord .from_dict (record ).to_dict ()
109129 self ._payload ["sandboxes" ][sandbox_id ] = record
110130 if is_default or (managed and self ._payload ["default_sandbox_id" ] is None ):
0 commit comments