Skip to content

Commit f8bf6c3

Browse files
feat(api): update via SDK Studio
1 parent 4164908 commit f8bf6c3

File tree

6 files changed

+149
-34
lines changed

6 files changed

+149
-34
lines changed

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 7
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-2813f659cb4e9e81cd3d9c94df748fd6c54f966fd6fd4881da369394aa981ace.yml
3-
openapi_spec_hash: facb760f50156c700b5c016087a70d64
4-
config_hash: 3eb1ed1dd0067258984b31d53a0dab48
1+
configured_endpoints: 10
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-ffefc234d11c041cadab66fa6e7c379cebbd9422d38f2b1b1019e425ae19bbd8.yml
3+
openapi_spec_hash: aa04a371ff95b44847450d657ad0a920
4+
config_hash: f33cc77a9c01e879ad127194c897a988

api.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,15 @@ Methods:
3636

3737
Types:
3838

39+
- <code><a href="./src/resources/browsers.ts">BrowserPersistence</a></code>
3940
- <code><a href="./src/resources/browsers.ts">BrowserCreateResponse</a></code>
4041
- <code><a href="./src/resources/browsers.ts">BrowserRetrieveResponse</a></code>
42+
- <code><a href="./src/resources/browsers.ts">BrowserListResponse</a></code>
4143

4244
Methods:
4345

4446
- <code title="post /browsers">client.browsers.<a href="./src/resources/browsers.ts">create</a>({ ...params }) -> BrowserCreateResponse</code>
4547
- <code title="get /browsers/{id}">client.browsers.<a href="./src/resources/browsers.ts">retrieve</a>(id) -> BrowserRetrieveResponse</code>
48+
- <code title="get /browsers">client.browsers.<a href="./src/resources/browsers.ts">list</a>() -> BrowserListResponse</code>
49+
- <code title="delete /browsers">client.browsers.<a href="./src/resources/browsers.ts">delete</a>({ ...params }) -> void</code>
50+
- <code title="delete /browsers/{id}">client.browsers.<a href="./src/resources/browsers.ts">deleteByID</a>(id) -> void</code>

src/client.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ import { FinalRequestOptions, RequestOptions } from './internal/request-options'
2323
import {
2424
BrowserCreateParams,
2525
BrowserCreateResponse,
26+
BrowserDeleteParams,
27+
BrowserListResponse,
28+
BrowserPersistence,
2629
BrowserRetrieveResponse,
2730
Browsers,
2831
} from './resources/browsers';
@@ -744,8 +747,11 @@ export declare namespace Kernel {
744747

745748
export {
746749
Browsers as Browsers,
750+
type BrowserPersistence as BrowserPersistence,
747751
type BrowserCreateResponse as BrowserCreateResponse,
748752
type BrowserRetrieveResponse as BrowserRetrieveResponse,
753+
type BrowserListResponse as BrowserListResponse,
749754
type BrowserCreateParams as BrowserCreateParams,
755+
type BrowserDeleteParams as BrowserDeleteParams,
750756
};
751757
}

src/resources/browsers.ts

Lines changed: 90 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
import { APIResource } from '../core/resource';
4+
import * as BrowsersAPI from './browsers';
45
import { APIPromise } from '../core/api-promise';
6+
import { buildHeaders } from '../internal/headers';
57
import { RequestOptions } from '../internal/request-options';
68
import { path } from '../internal/utils/path';
79

@@ -33,6 +35,64 @@ export class Browsers extends APIResource {
3335
retrieve(id: string, options?: RequestOptions): APIPromise<BrowserRetrieveResponse> {
3436
return this._client.get(path`/browsers/${id}`, options);
3537
}
38+
39+
/**
40+
* List active browser sessions for the authenticated user
41+
*
42+
* @example
43+
* ```ts
44+
* const browsers = await client.browsers.list();
45+
* ```
46+
*/
47+
list(options?: RequestOptions): APIPromise<BrowserListResponse> {
48+
return this._client.get('/browsers', options);
49+
}
50+
51+
/**
52+
* Delete a persistent browser session by persistent_id query parameter.
53+
*
54+
* @example
55+
* ```ts
56+
* await client.browsers.delete({
57+
* persistent_id: 'persistent_id',
58+
* });
59+
* ```
60+
*/
61+
delete(params: BrowserDeleteParams, options?: RequestOptions): APIPromise<void> {
62+
const { persistent_id } = params;
63+
return this._client.delete('/browsers', {
64+
query: { persistent_id },
65+
...options,
66+
headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
67+
});
68+
}
69+
70+
/**
71+
* Delete Browser Session by ID
72+
*
73+
* @example
74+
* ```ts
75+
* await client.browsers.deleteByID(
76+
* 'e5bf36fe-9247-4e2b-8b5a-2f594cc1c073',
77+
* );
78+
* ```
79+
*/
80+
deleteByID(id: string, options?: RequestOptions): APIPromise<void> {
81+
return this._client.delete(path`/browsers/${id}`, {
82+
...options,
83+
headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
84+
});
85+
}
86+
}
87+
88+
/**
89+
* Optional persistence configuration for the browser session.
90+
*/
91+
export interface BrowserPersistence {
92+
/**
93+
* Unique identifier for the persistent browser session.
94+
*/
95+
id: string;
3696
}
3797

3898
export interface BrowserCreateResponse {
@@ -54,19 +114,7 @@ export interface BrowserCreateResponse {
54114
/**
55115
* Optional persistence configuration for the browser session.
56116
*/
57-
persistence?: BrowserCreateResponse.Persistence;
58-
}
59-
60-
export namespace BrowserCreateResponse {
61-
/**
62-
* Optional persistence configuration for the browser session.
63-
*/
64-
export interface Persistence {
65-
/**
66-
* Unique identifier for the persistent browser session.
67-
*/
68-
id: string;
69-
}
117+
persistence?: BrowserPersistence;
70118
}
71119

72120
export interface BrowserRetrieveResponse {
@@ -88,18 +136,32 @@ export interface BrowserRetrieveResponse {
88136
/**
89137
* Optional persistence configuration for the browser session.
90138
*/
91-
persistence?: BrowserRetrieveResponse.Persistence;
139+
persistence?: BrowserPersistence;
92140
}
93141

94-
export namespace BrowserRetrieveResponse {
95-
/**
96-
* Optional persistence configuration for the browser session.
97-
*/
98-
export interface Persistence {
142+
export type BrowserListResponse = Array<BrowserListResponse.BrowserListResponseItem>;
143+
144+
export namespace BrowserListResponse {
145+
export interface BrowserListResponseItem {
146+
/**
147+
* Remote URL for live viewing the browser session
148+
*/
149+
browser_live_view_url: string;
150+
151+
/**
152+
* Websocket URL for Chrome DevTools Protocol connections to the browser session
153+
*/
154+
cdp_ws_url: string;
155+
99156
/**
100-
* Unique identifier for the persistent browser session.
157+
* Unique identifier for the browser session
101158
*/
102-
id: string;
159+
session_id: string;
160+
161+
/**
162+
* Optional persistence configuration for the browser session.
163+
*/
164+
persistence?: BrowsersAPI.BrowserPersistence;
103165
}
104166
}
105167

@@ -112,25 +174,23 @@ export interface BrowserCreateParams {
112174
/**
113175
* Optional persistence configuration for the browser session.
114176
*/
115-
persistence?: BrowserCreateParams.Persistence;
177+
persistence?: BrowserPersistence;
116178
}
117179

118-
export namespace BrowserCreateParams {
180+
export interface BrowserDeleteParams {
119181
/**
120-
* Optional persistence configuration for the browser session.
182+
* Persistent browser identifier
121183
*/
122-
export interface Persistence {
123-
/**
124-
* Unique identifier for the persistent browser session.
125-
*/
126-
id: string;
127-
}
184+
persistent_id: string;
128185
}
129186

130187
export declare namespace Browsers {
131188
export {
189+
type BrowserPersistence as BrowserPersistence,
132190
type BrowserCreateResponse as BrowserCreateResponse,
133191
type BrowserRetrieveResponse as BrowserRetrieveResponse,
192+
type BrowserListResponse as BrowserListResponse,
134193
type BrowserCreateParams as BrowserCreateParams,
194+
type BrowserDeleteParams as BrowserDeleteParams,
135195
};
136196
}

src/resources/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
export { Apps, type AppListResponse, type AppListParams } from './apps/apps';
44
export {
55
Browsers,
6+
type BrowserPersistence,
67
type BrowserCreateResponse,
78
type BrowserRetrieveResponse,
9+
type BrowserListResponse,
810
type BrowserCreateParams,
11+
type BrowserDeleteParams,
912
} from './browsers';

tests/api-resources/browsers.test.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,45 @@ describe('resource browsers', () => {
3939
expect(dataAndResponse.data).toBe(response);
4040
expect(dataAndResponse.response).toBe(rawResponse);
4141
});
42+
43+
// skipped: tests are disabled for the time being
44+
test.skip('list', async () => {
45+
const responsePromise = client.browsers.list();
46+
const rawResponse = await responsePromise.asResponse();
47+
expect(rawResponse).toBeInstanceOf(Response);
48+
const response = await responsePromise;
49+
expect(response).not.toBeInstanceOf(Response);
50+
const dataAndResponse = await responsePromise.withResponse();
51+
expect(dataAndResponse.data).toBe(response);
52+
expect(dataAndResponse.response).toBe(rawResponse);
53+
});
54+
55+
// skipped: tests are disabled for the time being
56+
test.skip('delete: only required params', async () => {
57+
const responsePromise = client.browsers.delete({ persistent_id: 'persistent_id' });
58+
const rawResponse = await responsePromise.asResponse();
59+
expect(rawResponse).toBeInstanceOf(Response);
60+
const response = await responsePromise;
61+
expect(response).not.toBeInstanceOf(Response);
62+
const dataAndResponse = await responsePromise.withResponse();
63+
expect(dataAndResponse.data).toBe(response);
64+
expect(dataAndResponse.response).toBe(rawResponse);
65+
});
66+
67+
// skipped: tests are disabled for the time being
68+
test.skip('delete: required and optional params', async () => {
69+
const response = await client.browsers.delete({ persistent_id: 'persistent_id' });
70+
});
71+
72+
// skipped: tests are disabled for the time being
73+
test.skip('deleteByID', async () => {
74+
const responsePromise = client.browsers.deleteByID('e5bf36fe-9247-4e2b-8b5a-2f594cc1c073');
75+
const rawResponse = await responsePromise.asResponse();
76+
expect(rawResponse).toBeInstanceOf(Response);
77+
const response = await responsePromise;
78+
expect(response).not.toBeInstanceOf(Response);
79+
const dataAndResponse = await responsePromise.withResponse();
80+
expect(dataAndResponse.data).toBe(response);
81+
expect(dataAndResponse.response).toBe(rawResponse);
82+
});
4283
});

0 commit comments

Comments
 (0)