2626 SDKBenchmarkCreateParams ,
2727 SDKBlueprintCreateParams ,
2828 SDKDiskSnapshotListParams ,
29+ SDKNetworkPolicyListParams ,
30+ SDKNetworkPolicyCreateParams ,
2931 SDKDevboxCreateFromImageParams ,
3032)
3133from .._types import Timeout , NotGiven , not_given
3941from .async_benchmark import AsyncBenchmark
4042from .async_blueprint import AsyncBlueprint
4143from ..lib .context_loader import TarFilter , build_directory_tar
44+ from .async_network_policy import AsyncNetworkPolicy
4245from .async_storage_object import AsyncStorageObject
4346from .async_scenario_builder import AsyncScenarioBuilder
4447from ..types .object_create_params import ContentType
@@ -867,6 +870,60 @@ async def list(self, **params: Unpack[SDKBenchmarkListParams]) -> list[AsyncBenc
867870 return [AsyncBenchmark (self ._client , item .id ) for item in page .benchmarks ]
868871
869872
873+ class AsyncNetworkPolicyOps :
874+ """High-level async manager for creating and managing network policies.
875+
876+ Accessed via ``runloop.network_policy`` from :class:`AsyncRunloopSDK`, provides
877+ coroutines to create, retrieve, update, delete, and list network policies.
878+
879+ Example:
880+ >>> runloop = AsyncRunloopSDK()
881+ >>> policy = await runloop.network_policy.create(
882+ ... name="my-policy",
883+ ... allowed_hostnames=["github.com", "*.npmjs.org"],
884+ ... )
885+ >>> policies = await runloop.network_policy.list()
886+ """
887+
888+ def __init__ (self , client : AsyncRunloop ) -> None :
889+ """Initialize AsyncNetworkPolicyOps.
890+
891+ :param client: AsyncRunloop client instance
892+ :type client: AsyncRunloop
893+ """
894+ self ._client = client
895+
896+ async def create (self , ** params : Unpack [SDKNetworkPolicyCreateParams ]) -> AsyncNetworkPolicy :
897+ """Create a new network policy.
898+
899+ :param params: See :typeddict:`~runloop_api_client.sdk._types.SDKNetworkPolicyCreateParams` for available parameters
900+ :return: The newly created network policy
901+ :rtype: AsyncNetworkPolicy
902+ """
903+ response = await self ._client .network_policies .create (** params )
904+ return AsyncNetworkPolicy (self ._client , response .id )
905+
906+ def from_id (self , network_policy_id : str ) -> AsyncNetworkPolicy :
907+ """Get an AsyncNetworkPolicy instance for an existing network policy ID.
908+
909+ :param network_policy_id: ID of the network policy
910+ :type network_policy_id: str
911+ :return: AsyncNetworkPolicy instance for the given ID
912+ :rtype: AsyncNetworkPolicy
913+ """
914+ return AsyncNetworkPolicy (self ._client , network_policy_id )
915+
916+ async def list (self , ** params : Unpack [SDKNetworkPolicyListParams ]) -> list [AsyncNetworkPolicy ]:
917+ """List all network policies, optionally filtered by parameters.
918+
919+ :param params: See :typeddict:`~runloop_api_client.sdk._types.SDKNetworkPolicyListParams` for available parameters
920+ :return: List of network policies
921+ :rtype: list[AsyncNetworkPolicy]
922+ """
923+ page = self ._client .network_policies .list (** params )
924+ return [AsyncNetworkPolicy (self ._client , item .id ) async for item in page ]
925+
926+
870927class AsyncRunloopSDK :
871928 """High-level asynchronous entry point for the Runloop SDK.
872929
@@ -892,6 +949,8 @@ class AsyncRunloopSDK:
892949 :vartype snapshot: AsyncSnapshotOps
893950 :ivar storage_object: High-level async interface for storage object management
894951 :vartype storage_object: AsyncStorageObjectOps
952+ :ivar network_policy: High-level async interface for network policy management
953+ :vartype network_policy: AsyncNetworkPolicyOps
895954
896955 Example:
897956 >>> runloop = AsyncRunloopSDK() # Uses RUNLOOP_API_KEY env var
@@ -906,6 +965,7 @@ class AsyncRunloopSDK:
906965 benchmark : AsyncBenchmarkOps
907966 devbox : AsyncDevboxOps
908967 blueprint : AsyncBlueprintOps
968+ network_policy : AsyncNetworkPolicyOps
909969 scenario : AsyncScenarioOps
910970 scorer : AsyncScorerOps
911971 snapshot : AsyncSnapshotOps
@@ -953,6 +1013,7 @@ def __init__(
9531013 self .benchmark = AsyncBenchmarkOps (self .api )
9541014 self .devbox = AsyncDevboxOps (self .api )
9551015 self .blueprint = AsyncBlueprintOps (self .api )
1016+ self .network_policy = AsyncNetworkPolicyOps (self .api )
9561017 self .scenario = AsyncScenarioOps (self .api )
9571018 self .scorer = AsyncScorerOps (self .api )
9581019 self .snapshot = AsyncSnapshotOps (self .api )
0 commit comments