Skip to content

Commit 7d004de

Browse files
feat: Support 16GiB memory in browser pools
Stainless-Generated-From: 491b38f4736aca671f22d24be01e6d55fec9058b
1 parent 1da4b21 commit 7d004de

5 files changed

Lines changed: 42 additions & 1 deletion

File tree

‎src/kernel/resources/browser_pools.py‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import httpx
99

1010
from ..types import (
11+
BrowserMemoryRequest,
1112
browser_pool_list_params,
1213
browser_pool_create_params,
1314
browser_pool_delete_params,
@@ -29,6 +30,7 @@
2930
from .._base_client import AsyncPaginator, make_request_options
3031
from ..types.tags_param import TagsParam
3132
from ..types.browser_pool import BrowserPool
33+
from ..types.browser_memory_request import BrowserMemoryRequest
3234
from ..types.browser_network_config_param import BrowserNetworkConfigParam
3335
from ..types.browser_pool_acquire_response import BrowserPoolAcquireResponse
3436
from ..types.shared_params.browser_profile import BrowserProfile
@@ -69,6 +71,7 @@ def create(
6971
fill_rate_per_minute: int | Omit = omit,
7072
headless: bool | Omit = omit,
7173
kiosk_mode: bool | Omit = omit,
74+
memory: BrowserMemoryRequest | Omit = omit,
7275
name: str | Omit = omit,
7376
network: BrowserNetworkConfigParam | Omit = omit,
7477
profile: browser_pool_create_params.Profile | Omit = omit,
@@ -116,6 +119,8 @@ def create(
116119
kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
117120
view. Defaults to false.
118121
122+
memory: Memory requested for headful browsers in this pool.
123+
119124
name: Optional name for the browser pool. Must be unique within the project.
120125
121126
network: Network configuration applied to browsers in this pool.
@@ -187,6 +192,7 @@ def create(
187192
"fill_rate_per_minute": fill_rate_per_minute,
188193
"headless": headless,
189194
"kiosk_mode": kiosk_mode,
195+
"memory": memory,
190196
"name": name,
191197
"network": network,
192198
"profile": profile,
@@ -250,6 +256,7 @@ def update(
250256
fill_rate_per_minute: int | Omit = omit,
251257
headless: bool | Omit = omit,
252258
kiosk_mode: bool | Omit = omit,
259+
memory: Literal["8GiB", "16GiB"] | Omit = omit,
253260
name: str | Omit = omit,
254261
network: BrowserNetworkConfigParam | Omit = omit,
255262
profile: browser_pool_update_params.Profile | Omit = omit,
@@ -302,6 +309,10 @@ def update(
302309
303310
kiosk_mode: If provided, replaces whether browsers launch in kiosk mode.
304311
312+
memory: Memory requested for newly-warmed headful browsers in this pool. Existing
313+
browsers retain their original allocation. Use discard_all_idle to replace idle
314+
browsers.
315+
305316
name: If provided, replaces the pool name. Empty string is a no-op; the pool name
306317
cannot be cleared or reset to empty once assigned.
307318
@@ -380,6 +391,7 @@ def update(
380391
"fill_rate_per_minute": fill_rate_per_minute,
381392
"headless": headless,
382393
"kiosk_mode": kiosk_mode,
394+
"memory": memory,
383395
"name": name,
384396
"network": network,
385397
"profile": profile,
@@ -706,6 +718,7 @@ async def create(
706718
fill_rate_per_minute: int | Omit = omit,
707719
headless: bool | Omit = omit,
708720
kiosk_mode: bool | Omit = omit,
721+
memory: BrowserMemoryRequest | Omit = omit,
709722
name: str | Omit = omit,
710723
network: BrowserNetworkConfigParam | Omit = omit,
711724
profile: browser_pool_create_params.Profile | Omit = omit,
@@ -753,6 +766,8 @@ async def create(
753766
kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
754767
view. Defaults to false.
755768
769+
memory: Memory requested for headful browsers in this pool.
770+
756771
name: Optional name for the browser pool. Must be unique within the project.
757772
758773
network: Network configuration applied to browsers in this pool.
@@ -824,6 +839,7 @@ async def create(
824839
"fill_rate_per_minute": fill_rate_per_minute,
825840
"headless": headless,
826841
"kiosk_mode": kiosk_mode,
842+
"memory": memory,
827843
"name": name,
828844
"network": network,
829845
"profile": profile,
@@ -887,6 +903,7 @@ async def update(
887903
fill_rate_per_minute: int | Omit = omit,
888904
headless: bool | Omit = omit,
889905
kiosk_mode: bool | Omit = omit,
906+
memory: Literal["8GiB", "16GiB"] | Omit = omit,
890907
name: str | Omit = omit,
891908
network: BrowserNetworkConfigParam | Omit = omit,
892909
profile: browser_pool_update_params.Profile | Omit = omit,
@@ -939,6 +956,10 @@ async def update(
939956
940957
kiosk_mode: If provided, replaces whether browsers launch in kiosk mode.
941958
959+
memory: Memory requested for newly-warmed headful browsers in this pool. Existing
960+
browsers retain their original allocation. Use discard_all_idle to replace idle
961+
browsers.
962+
942963
name: If provided, replaces the pool name. Empty string is a no-op; the pool name
943964
cannot be cleared or reset to empty once assigned.
944965
@@ -1017,6 +1038,7 @@ async def update(
10171038
"fill_rate_per_minute": fill_rate_per_minute,
10181039
"headless": headless,
10191040
"kiosk_mode": kiosk_mode,
1041+
"memory": memory,
10201042
"name": name,
10211043
"network": network,
10221044
"profile": profile,

‎src/kernel/types/browser_pool.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from typing_extensions import Literal
66

77
from .._models import BaseModel
8+
from .browser_memory import BrowserMemory
89
from .browser_network_config import BrowserNetworkConfig
910
from .shared.browser_viewport import BrowserViewport
1011
from .shared.browser_extension import BrowserExtension
@@ -73,6 +74,9 @@ class BrowserPoolConfig(BaseModel):
7374
view.
7475
"""
7576

77+
memory: Optional[BrowserMemory] = None
78+
"""Memory allocated to the browser session."""
79+
7680
name: Optional[str] = None
7781
"""Optional name for the browser pool. Must be unique within the project."""
7882

‎src/kernel/types/browser_pool_create_params.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from typing import Dict, Iterable, Optional
66
from typing_extensions import Literal, Required, TypedDict
77

8+
from .browser_memory_request import BrowserMemoryRequest
89
from .browser_network_config_param import BrowserNetworkConfigParam
910
from .shared_params.browser_viewport import BrowserViewport
1011
from .shared_params.browser_extension import BrowserExtension
@@ -59,6 +60,9 @@ class BrowserPoolCreateParams(TypedDict, total=False):
5960
view. Defaults to false.
6061
"""
6162

63+
memory: BrowserMemoryRequest
64+
"""Memory requested for headful browsers in this pool."""
65+
6266
name: str
6367
"""Optional name for the browser pool. Must be unique within the project."""
6468

‎src/kernel/types/browser_pool_update_params.py‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from __future__ import annotations
44

55
from typing import Dict, Iterable, Optional
6-
from typing_extensions import TypedDict
6+
from typing_extensions import Literal, TypedDict
77

88
from .browser_network_config_param import BrowserNetworkConfigParam
99
from .shared_params.browser_viewport import BrowserViewport
@@ -61,6 +61,13 @@ class BrowserPoolUpdateParams(TypedDict, total=False):
6161
kiosk_mode: bool
6262
"""If provided, replaces whether browsers launch in kiosk mode."""
6363

64+
memory: Literal["8GiB", "16GiB"]
65+
"""Memory requested for newly-warmed headful browsers in this pool.
66+
67+
Existing browsers retain their original allocation. Use discard_all_idle to
68+
replace idle browsers.
69+
"""
70+
6471
name: str
6572
"""If provided, replaces the pool name.
6673

‎tests/api_resources/test_browser_pools.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def test_method_create_with_all_params(self, client: Kernel) -> None:
4444
fill_rate_per_minute=0,
4545
headless=False,
4646
kiosk_mode=True,
47+
memory="8GiB",
4748
name="my-pool",
4849
network={
4950
"private_hosts": ["*.example.ts.net", "100.64.0.0/10"],
@@ -194,6 +195,7 @@ def test_method_update_with_all_params(self, client: Kernel) -> None:
194195
fill_rate_per_minute=0,
195196
headless=False,
196197
kiosk_mode=True,
198+
memory="8GiB",
197199
name="my-pool",
198200
network={
199201
"private_hosts": ["*.example.ts.net", "100.64.0.0/10"],
@@ -593,6 +595,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncKernel) ->
593595
fill_rate_per_minute=0,
594596
headless=False,
595597
kiosk_mode=True,
598+
memory="8GiB",
596599
name="my-pool",
597600
network={
598601
"private_hosts": ["*.example.ts.net", "100.64.0.0/10"],
@@ -743,6 +746,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncKernel) ->
743746
fill_rate_per_minute=0,
744747
headless=False,
745748
kiosk_mode=True,
749+
memory="8GiB",
746750
name="my-pool",
747751
network={
748752
"private_hosts": ["*.example.ts.net", "100.64.0.0/10"],

0 commit comments

Comments
 (0)