Skip to content

Commit fd7c42c

Browse files
feat(network-policy): add network policies to api
1 parent ffe23be commit fd7c42c

8 files changed

Lines changed: 635 additions & 44 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 98
1+
configured_endpoints: 103
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-8ebd9dbfacb180ec9c980f5e46a814b0c8a3cb6063136db18780271d33a8dfa6.yml
33
openapi_spec_hash: 12d4edec72b722945bade9419636d63e
4-
config_hash: cb8534d20a68a49b92726bedd50f8bb1
4+
config_hash: ec63e62d4660c9c924b39a8671c2fdb1

api.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
Types:
44

55
- <code><a href="./src/resources/shared.ts">AfterIdle</a></code>
6+
- <code><a href="./src/resources/shared.ts">AgentMount</a></code>
67
- <code><a href="./src/resources/shared.ts">AgentSource</a></code>
78
- <code><a href="./src/resources/shared.ts">CodeMountParameters</a></code>
89
- <code><a href="./src/resources/shared.ts">LaunchParameters</a></code>
910
- <code><a href="./src/resources/shared.ts">Mount</a></code>
11+
- <code><a href="./src/resources/shared.ts">ObjectMount</a></code>
1012
- <code><a href="./src/resources/shared.ts">RunProfile</a></code>
1113

1214
# Benchmarks
@@ -311,3 +313,20 @@ Methods:
311313
- <code title="post /v1/secrets/{name}">client.secrets.<a href="./src/resources/secrets.ts">update</a>(name, { ...params }) -> SecretView</code>
312314
- <code title="get /v1/secrets">client.secrets.<a href="./src/resources/secrets.ts">list</a>({ ...params }) -> SecretListView</code>
313315
- <code title="post /v1/secrets/{name}/delete">client.secrets.<a href="./src/resources/secrets.ts">delete</a>(name) -> SecretView</code>
316+
317+
# NetworkPolicies
318+
319+
Types:
320+
321+
- <code><a href="./src/resources/network-policies.ts">NetworkPolicyCreateParameters</a></code>
322+
- <code><a href="./src/resources/network-policies.ts">NetworkPolicyListView</a></code>
323+
- <code><a href="./src/resources/network-policies.ts">NetworkPolicyUpdateParameters</a></code>
324+
- <code><a href="./src/resources/network-policies.ts">NetworkPolicyView</a></code>
325+
326+
Methods:
327+
328+
- <code title="post /v1/network-policies">client.networkPolicies.<a href="./src/resources/network-policies.ts">create</a>({ ...params }) -> NetworkPolicyView</code>
329+
- <code title="get /v1/network-policies/{id}">client.networkPolicies.<a href="./src/resources/network-policies.ts">retrieve</a>(id) -> NetworkPolicyView</code>
330+
- <code title="post /v1/network-policies/{id}">client.networkPolicies.<a href="./src/resources/network-policies.ts">update</a>(id, { ...params }) -> NetworkPolicyView</code>
331+
- <code title="get /v1/network-policies">client.networkPolicies.<a href="./src/resources/network-policies.ts">list</a>({ ...params }) -> NetworkPolicyViewsNetworkPoliciesCursorIDPage</code>
332+
- <code title="post /v1/network-policies/{id}/delete">client.networkPolicies.<a href="./src/resources/network-policies.ts">delete</a>(id) -> NetworkPolicyView</code>

src/index.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import {
1717
DevboxesCursorIDPageResponse,
1818
type DiskSnapshotsCursorIDPageParams,
1919
DiskSnapshotsCursorIDPageResponse,
20+
type NetworkPoliciesCursorIDPageParams,
21+
NetworkPoliciesCursorIDPageResponse,
2022
type ObjectsCursorIDPageParams,
2123
ObjectsCursorIDPageResponse,
2224
type RepositoriesCursorIDPageParams,
@@ -57,6 +59,18 @@ import {
5759
Blueprints,
5860
InspectionSource,
5961
} from './resources/blueprints';
62+
import {
63+
NetworkPolicies,
64+
NetworkPolicyCreateParameters,
65+
NetworkPolicyCreateParams,
66+
NetworkPolicyDeleteParams,
67+
NetworkPolicyListParams,
68+
NetworkPolicyListView,
69+
NetworkPolicyUpdateParameters,
70+
NetworkPolicyUpdateParams,
71+
NetworkPolicyView,
72+
NetworkPolicyViewsNetworkPoliciesCursorIDPage,
73+
} from './resources/network-policies';
6074
import {
6175
ObjectCompleteParams,
6276
ObjectCreateParameters,
@@ -310,6 +324,7 @@ export class Runloop extends Core.APIClient {
310324
objects: API.Objects = new API.Objects(this);
311325
repositories: API.Repositories = new API.Repositories(this);
312326
secrets: API.Secrets = new API.Secrets(this);
327+
networkPolicies: API.NetworkPolicies = new API.NetworkPolicies(this);
313328

314329
/**
315330
* Check whether the base URL is set to its default.
@@ -370,6 +385,8 @@ Runloop.ObjectViewsObjectsCursorIDPage = ObjectViewsObjectsCursorIDPage;
370385
Runloop.Repositories = Repositories;
371386
Runloop.RepositoryConnectionViewsRepositoriesCursorIDPage = RepositoryConnectionViewsRepositoriesCursorIDPage;
372387
Runloop.Secrets = Secrets;
388+
Runloop.NetworkPolicies = NetworkPolicies;
389+
Runloop.NetworkPolicyViewsNetworkPoliciesCursorIDPage = NetworkPolicyViewsNetworkPoliciesCursorIDPage;
373390

374391
export declare namespace Runloop {
375392
export type RequestOptions = Core.RequestOptions;
@@ -440,6 +457,12 @@ export declare namespace Runloop {
440457
type ObjectsCursorIDPageResponse as ObjectsCursorIDPageResponse,
441458
};
442459

460+
export import NetworkPoliciesCursorIDPage = Pagination.NetworkPoliciesCursorIDPage;
461+
export {
462+
type NetworkPoliciesCursorIDPageParams as NetworkPoliciesCursorIDPageParams,
463+
type NetworkPoliciesCursorIDPageResponse as NetworkPoliciesCursorIDPageResponse,
464+
};
465+
443466
export {
444467
Benchmarks as Benchmarks,
445468
type BenchmarkCreateParameters as BenchmarkCreateParameters,
@@ -595,11 +618,26 @@ export declare namespace Runloop {
595618
type SecretDeleteParams as SecretDeleteParams,
596619
};
597620

621+
export {
622+
NetworkPolicies as NetworkPolicies,
623+
type NetworkPolicyCreateParameters as NetworkPolicyCreateParameters,
624+
type NetworkPolicyListView as NetworkPolicyListView,
625+
type NetworkPolicyUpdateParameters as NetworkPolicyUpdateParameters,
626+
type NetworkPolicyView as NetworkPolicyView,
627+
NetworkPolicyViewsNetworkPoliciesCursorIDPage as NetworkPolicyViewsNetworkPoliciesCursorIDPage,
628+
type NetworkPolicyCreateParams as NetworkPolicyCreateParams,
629+
type NetworkPolicyUpdateParams as NetworkPolicyUpdateParams,
630+
type NetworkPolicyListParams as NetworkPolicyListParams,
631+
type NetworkPolicyDeleteParams as NetworkPolicyDeleteParams,
632+
};
633+
598634
export type AfterIdle = API.AfterIdle;
635+
export type AgentMount = API.AgentMount;
599636
export type AgentSource = API.AgentSource;
600637
export type CodeMountParameters = API.CodeMountParameters;
601638
export type LaunchParameters = API.LaunchParameters;
602639
export type Mount = API.Mount;
640+
export type ObjectMount = API.ObjectMount;
603641
export type RunProfile = API.RunProfile;
604642
}
605643

src/pagination.ts

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -815,3 +815,77 @@ export class ObjectsCursorIDPage<Item extends { id: string }>
815815
return { params: { starting_after: id } };
816816
}
817817
}
818+
819+
export interface NetworkPoliciesCursorIDPageResponse<Item> {
820+
network_policies: Array<Item>;
821+
822+
has_more: boolean;
823+
824+
total_count: number;
825+
}
826+
827+
export interface NetworkPoliciesCursorIDPageParams {
828+
starting_after?: string;
829+
830+
limit?: number;
831+
}
832+
833+
export class NetworkPoliciesCursorIDPage<Item extends { id: string }>
834+
extends AbstractPage<Item>
835+
implements NetworkPoliciesCursorIDPageResponse<Item>
836+
{
837+
network_policies: Array<Item>;
838+
839+
has_more: boolean;
840+
841+
total_count: number;
842+
843+
constructor(
844+
client: APIClient,
845+
response: Response,
846+
body: NetworkPoliciesCursorIDPageResponse<Item>,
847+
options: FinalRequestOptions,
848+
) {
849+
super(client, response, body, options);
850+
851+
this.network_policies = body.network_policies || [];
852+
this.has_more = body.has_more || false;
853+
this.total_count = body.total_count || 0;
854+
}
855+
856+
getPaginatedItems(): Item[] {
857+
return this.network_policies ?? [];
858+
}
859+
860+
override hasNextPage(): boolean {
861+
if (this.has_more === false) {
862+
return false;
863+
}
864+
865+
return super.hasNextPage();
866+
}
867+
868+
// @deprecated Please use `nextPageInfo()` instead
869+
nextPageParams(): Partial<NetworkPoliciesCursorIDPageParams> | null {
870+
const info = this.nextPageInfo();
871+
if (!info) return null;
872+
if ('params' in info) return info.params;
873+
const params = Object.fromEntries(info.url.searchParams);
874+
if (!Object.keys(params).length) return null;
875+
return params;
876+
}
877+
878+
nextPageInfo(): PageInfo | null {
879+
const networkPolicies = this.getPaginatedItems();
880+
if (!networkPolicies.length) {
881+
return null;
882+
}
883+
884+
const id = networkPolicies[networkPolicies.length - 1]?.id;
885+
if (!id) {
886+
return null;
887+
}
888+
889+
return { params: { starting_after: id } };
890+
}
891+
}

src/resources/index.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,18 @@ export {
8585
type DevboxWaitForCommandParams,
8686
type DevboxWriteFileContentsParams,
8787
} from './devboxes/devboxes';
88+
export {
89+
NetworkPolicyViewsNetworkPoliciesCursorIDPage,
90+
NetworkPolicies,
91+
type NetworkPolicyCreateParameters,
92+
type NetworkPolicyListView,
93+
type NetworkPolicyUpdateParameters,
94+
type NetworkPolicyView,
95+
type NetworkPolicyCreateParams,
96+
type NetworkPolicyUpdateParams,
97+
type NetworkPolicyListParams,
98+
type NetworkPolicyDeleteParams,
99+
} from './network-policies';
88100
export {
89101
ObjectViewsObjectsCursorIDPage,
90102
Objects,

0 commit comments

Comments
 (0)