Skip to content

Commit 2976140

Browse files
feat: api: paginate GET /org/credential_providers
1 parent df67fdd commit 2976140

6 files changed

Lines changed: 37 additions & 15 deletions

File tree

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 117
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-9a76e7a837ac9ffbe0e9557d618ce9b676e052249e364e516c28ddb33b912019.yml
3-
openapi_spec_hash: c0e5412cc95139f11a8b8635559bb985
4-
config_hash: 098a7f3fd134c8e4cbd3a44750892a18
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-e6c711f0d29a7d956cc8ca621440da966c1f1575b1205d01328b1099edf1c517.yml
3+
openapi_spec_hash: c06e7e36de1c6f9b29b54a6e3dc08ee5
4+
config_hash: 36159c262d293fbeacf513ab600a1729

api.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,15 +390,14 @@ Types:
390390
- <code><a href="./src/resources/credential-providers.ts">CredentialProviderItem</a></code>
391391
- <code><a href="./src/resources/credential-providers.ts">CredentialProviderTestResult</a></code>
392392
- <code><a href="./src/resources/credential-providers.ts">UpdateCredentialProviderRequest</a></code>
393-
- <code><a href="./src/resources/credential-providers.ts">CredentialProviderListResponse</a></code>
394393
- <code><a href="./src/resources/credential-providers.ts">CredentialProviderListItemsResponse</a></code>
395394

396395
Methods:
397396

398397
- <code title="post /org/credential_providers">client.credentialProviders.<a href="./src/resources/credential-providers.ts">create</a>({ ...params }) -> CredentialProvider</code>
399398
- <code title="get /org/credential_providers/{id}">client.credentialProviders.<a href="./src/resources/credential-providers.ts">retrieve</a>(id) -> CredentialProvider</code>
400399
- <code title="patch /org/credential_providers/{id}">client.credentialProviders.<a href="./src/resources/credential-providers.ts">update</a>(id, { ...params }) -> CredentialProvider</code>
401-
- <code title="get /org/credential_providers">client.credentialProviders.<a href="./src/resources/credential-providers.ts">list</a>() -> CredentialProviderListResponse</code>
400+
- <code title="get /org/credential_providers">client.credentialProviders.<a href="./src/resources/credential-providers.ts">list</a>({ ...params }) -> CredentialProvidersOffsetPagination</code>
402401
- <code title="delete /org/credential_providers/{id}">client.credentialProviders.<a href="./src/resources/credential-providers.ts">delete</a>(id) -> void</code>
403402
- <code title="get /org/credential_providers/{id}/items">client.credentialProviders.<a href="./src/resources/credential-providers.ts">listItems</a>(id) -> CredentialProviderListItemsResponse</code>
404403
- <code title="post /org/credential_providers/{id}/test">client.credentialProviders.<a href="./src/resources/credential-providers.ts">test</a>(id) -> CredentialProviderTestResult</code>

src/client.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@ import {
5252
CredentialProviderCreateParams,
5353
CredentialProviderItem,
5454
CredentialProviderListItemsResponse,
55-
CredentialProviderListResponse,
55+
CredentialProviderListParams,
5656
CredentialProviderTestResult,
5757
CredentialProviderUpdateParams,
5858
CredentialProviders,
59+
CredentialProvidersOffsetPagination,
5960
UpdateCredentialProviderRequest,
6061
} from './resources/credential-providers';
6162
import {
@@ -1155,10 +1156,11 @@ export declare namespace Kernel {
11551156
type CredentialProviderItem as CredentialProviderItem,
11561157
type CredentialProviderTestResult as CredentialProviderTestResult,
11571158
type UpdateCredentialProviderRequest as UpdateCredentialProviderRequest,
1158-
type CredentialProviderListResponse as CredentialProviderListResponse,
11591159
type CredentialProviderListItemsResponse as CredentialProviderListItemsResponse,
1160+
type CredentialProvidersOffsetPagination as CredentialProvidersOffsetPagination,
11601161
type CredentialProviderCreateParams as CredentialProviderCreateParams,
11611162
type CredentialProviderUpdateParams as CredentialProviderUpdateParams,
1163+
type CredentialProviderListParams as CredentialProviderListParams,
11621164
};
11631165

11641166
export type AppAction = API.AppAction;

src/resources/credential-providers.ts

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import { APIResource } from '../core/resource';
44
import { APIPromise } from '../core/api-promise';
5+
import { OffsetPagination, type OffsetPaginationParams, PagePromise } from '../core/pagination';
56
import { buildHeaders } from '../internal/headers';
67
import { RequestOptions } from '../internal/request-options';
78
import { path } from '../internal/utils/path';
@@ -63,12 +64,20 @@ export class CredentialProviders extends APIResource {
6364
*
6465
* @example
6566
* ```ts
66-
* const credentialProviders =
67-
* await client.credentialProviders.list();
67+
* // Automatically fetches more pages as needed.
68+
* for await (const credentialProvider of client.credentialProviders.list()) {
69+
* // ...
70+
* }
6871
* ```
6972
*/
70-
list(options?: RequestOptions): APIPromise<CredentialProviderListResponse> {
71-
return this._client.get('/org/credential_providers', options);
73+
list(
74+
query: CredentialProviderListParams | null | undefined = {},
75+
options?: RequestOptions,
76+
): PagePromise<CredentialProvidersOffsetPagination, CredentialProvider> {
77+
return this._client.getAPIList('/org/credential_providers', OffsetPagination<CredentialProvider>, {
78+
query,
79+
...options,
80+
});
7281
}
7382

7483
/**
@@ -115,6 +124,8 @@ export class CredentialProviders extends APIResource {
115124
}
116125
}
117126

127+
export type CredentialProvidersOffsetPagination = OffsetPagination<CredentialProvider>;
128+
118129
/**
119130
* Request to create an external credential provider
120131
*/
@@ -280,8 +291,6 @@ export interface UpdateCredentialProviderRequest {
280291
priority?: number;
281292
}
282293

283-
export type CredentialProviderListResponse = Array<CredentialProvider>;
284-
285294
export interface CredentialProviderListItemsResponse {
286295
items?: Array<CredentialProviderItem>;
287296
}
@@ -335,16 +344,19 @@ export interface CredentialProviderUpdateParams {
335344
priority?: number;
336345
}
337346

347+
export interface CredentialProviderListParams extends OffsetPaginationParams {}
348+
338349
export declare namespace CredentialProviders {
339350
export {
340351
type CreateCredentialProviderRequest as CreateCredentialProviderRequest,
341352
type CredentialProvider as CredentialProvider,
342353
type CredentialProviderItem as CredentialProviderItem,
343354
type CredentialProviderTestResult as CredentialProviderTestResult,
344355
type UpdateCredentialProviderRequest as UpdateCredentialProviderRequest,
345-
type CredentialProviderListResponse as CredentialProviderListResponse,
346356
type CredentialProviderListItemsResponse as CredentialProviderListItemsResponse,
357+
type CredentialProvidersOffsetPagination as CredentialProvidersOffsetPagination,
347358
type CredentialProviderCreateParams as CredentialProviderCreateParams,
348359
type CredentialProviderUpdateParams as CredentialProviderUpdateParams,
360+
type CredentialProviderListParams as CredentialProviderListParams,
349361
};
350362
}

src/resources/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@ export {
5555
type CredentialProviderItem,
5656
type CredentialProviderTestResult,
5757
type UpdateCredentialProviderRequest,
58-
type CredentialProviderListResponse,
5958
type CredentialProviderListItemsResponse,
6059
type CredentialProviderCreateParams,
6160
type CredentialProviderUpdateParams,
61+
type CredentialProviderListParams,
62+
type CredentialProvidersOffsetPagination,
6263
} from './credential-providers';
6364
export {
6465
Credentials,

tests/api-resources/credential-providers.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ describe('resource credentialProviders', () => {
7070
expect(dataAndResponse.response).toBe(rawResponse);
7171
});
7272

73+
// Mock server tests are disabled
74+
test.skip('list: request options and params are passed correctly', async () => {
75+
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
76+
await expect(
77+
client.credentialProviders.list({ limit: 1, offset: 0 }, { path: '/_stainless_unknown_path' }),
78+
).rejects.toThrow(Kernel.NotFoundError);
79+
});
80+
7381
// Mock server tests are disabled
7482
test.skip('delete', async () => {
7583
const responsePromise = client.credentialProviders.delete('id');

0 commit comments

Comments
 (0)