Skip to content

Commit 276302a

Browse files
authored
feat(secret_manager): add endpoints *ByName() (#479)
1 parent 66803f7 commit 276302a

File tree

3 files changed

+154
-9
lines changed

3 files changed

+154
-9
lines changed

packages/clients/src/api/secret/v1alpha1/api.gen.ts

Lines changed: 112 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
unmarshalSecretVersion,
2020
} from './marshalling.gen'
2121
import type {
22+
AccessSecretVersionByNameRequest,
2223
AccessSecretVersionRequest,
2324
AccessSecretVersionResponse,
2425
CreateSecretRequest,
@@ -27,8 +28,11 @@ import type {
2728
DestroySecretVersionRequest,
2829
DisableSecretVersionRequest,
2930
EnableSecretVersionRequest,
31+
GetSecretByNameRequest,
3032
GetSecretRequest,
33+
GetSecretVersionByNameRequest,
3134
GetSecretVersionRequest,
35+
ListSecretVersionsByNameRequest,
3236
ListSecretVersionsRequest,
3337
ListSecretVersionsResponse,
3438
ListSecretsRequest,
@@ -92,6 +96,27 @@ export class API extends ParentAPI {
9296
unmarshalSecret,
9397
)
9498

99+
/**
100+
* Get metadata of a Secret
101+
*
102+
* @param request - The request {@link GetSecretByNameRequest}
103+
* @returns A Promise of Secret
104+
*/
105+
getSecretByName = (request: Readonly<GetSecretByNameRequest>) =>
106+
this.client.fetch<Secret>(
107+
{
108+
method: 'GET',
109+
path: `/secret-manager/v1alpha1/regions/${validatePathParam(
110+
'region',
111+
request.region ?? this.client.settings.defaultRegion,
112+
)}/secrets-by-name/${validatePathParam(
113+
'secretName',
114+
request.secretName,
115+
)}`,
116+
},
117+
unmarshalSecret,
118+
)
119+
95120
/**
96121
* Update metadata of a Secret
97122
*
@@ -123,21 +148,15 @@ export class API extends ParentAPI {
123148
request.region ?? this.client.settings.defaultRegion,
124149
)}/secrets`,
125150
urlParams: urlParams(
151+
['name', request.name],
126152
['order_by', request.orderBy ?? 'name_asc'],
127-
[
128-
'organization_id',
129-
request.organizationId ??
130-
this.client.settings.defaultOrganizationId,
131-
],
153+
['organization_id', request.organizationId],
132154
['page', request.page],
133155
[
134156
'page_size',
135157
request.pageSize ?? this.client.settings.defaultPageSize,
136158
],
137-
[
138-
'project_id',
139-
request.projectId ?? this.client.settings.defaultProjectId,
140-
],
159+
['project_id', request.projectId],
141160
['tags', request.tags],
142161
),
143162
},
@@ -210,6 +229,27 @@ export class API extends ParentAPI {
210229
unmarshalSecretVersion,
211230
)
212231

232+
/**
233+
* Get metadata of a SecretVersion
234+
*
235+
* @param request - The request {@link GetSecretVersionByNameRequest}
236+
* @returns A Promise of SecretVersion
237+
*/
238+
getSecretVersionByName = (request: Readonly<GetSecretVersionByNameRequest>) =>
239+
this.client.fetch<SecretVersion>(
240+
{
241+
method: 'GET',
242+
path: `/secret-manager/v1alpha1/regions/${validatePathParam(
243+
'region',
244+
request.region ?? this.client.settings.defaultRegion,
245+
)}/secrets-by-name/${validatePathParam(
246+
'secretName',
247+
request.secretName,
248+
)}/versions/${validatePathParam('revision', request.revision)}`,
249+
},
250+
unmarshalSecretVersion,
251+
)
252+
213253
/**
214254
* Update metadata of a SecretVersion
215255
*
@@ -266,6 +306,46 @@ export class API extends ParentAPI {
266306
listSecretVersions = (request: Readonly<ListSecretVersionsRequest>) =>
267307
enrichForPagination('versions', this.pageOfListSecretVersions, request)
268308

309+
protected pageOfListSecretVersionsByName = (
310+
request: Readonly<ListSecretVersionsByNameRequest>,
311+
) =>
312+
this.client.fetch<ListSecretVersionsResponse>(
313+
{
314+
method: 'GET',
315+
path: `/secret-manager/v1alpha1/regions/${validatePathParam(
316+
'region',
317+
request.region ?? this.client.settings.defaultRegion,
318+
)}/secrets-by-name/${validatePathParam(
319+
'secretName',
320+
request.secretName,
321+
)}/versions`,
322+
urlParams: urlParams(
323+
['page', request.page],
324+
[
325+
'page_size',
326+
request.pageSize ?? this.client.settings.defaultPageSize,
327+
],
328+
['status', request.status],
329+
),
330+
},
331+
unmarshalListSecretVersionsResponse,
332+
)
333+
334+
/**
335+
* List versions of a secret, not returning any sensitive data
336+
*
337+
* @param request - The request {@link ListSecretVersionsByNameRequest}
338+
* @returns A Promise of ListSecretVersionsResponse
339+
*/
340+
listSecretVersionsByName = (
341+
request: Readonly<ListSecretVersionsByNameRequest>,
342+
) =>
343+
enrichForPagination(
344+
'versions',
345+
this.pageOfListSecretVersionsByName,
346+
request,
347+
)
348+
269349
/**
270350
* Destroy a SecretVersion, permanently destroying the sensitive data
271351
*
@@ -355,4 +435,27 @@ export class API extends ParentAPI {
355435
},
356436
unmarshalAccessSecretVersionResponse,
357437
)
438+
439+
/**
440+
* Access a SecretVersion, returning the sensitive data
441+
*
442+
* @param request - The request {@link AccessSecretVersionByNameRequest}
443+
* @returns A Promise of AccessSecretVersionResponse
444+
*/
445+
accessSecretVersionByName = (
446+
request: Readonly<AccessSecretVersionByNameRequest>,
447+
) =>
448+
this.client.fetch<AccessSecretVersionResponse>(
449+
{
450+
method: 'GET',
451+
path: `/secret-manager/v1alpha1/regions/${validatePathParam(
452+
'region',
453+
request.region ?? this.client.settings.defaultRegion,
454+
)}/secrets-by-name/${validatePathParam(
455+
'secretName',
456+
request.secretName,
457+
)}/versions/${validatePathParam('revision', request.revision)}/access`,
458+
},
459+
unmarshalAccessSecretVersionResponse,
460+
)
358461
}

packages/clients/src/api/secret/v1alpha1/index.gen.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// If you have any remark or suggestion do not hesitate to open an issue.
33
export { API } from './api.gen'
44
export type {
5+
AccessSecretVersionByNameRequest,
56
AccessSecretVersionRequest,
67
AccessSecretVersionResponse,
78
CreateSecretRequest,
@@ -10,8 +11,11 @@ export type {
1011
DestroySecretVersionRequest,
1112
DisableSecretVersionRequest,
1213
EnableSecretVersionRequest,
14+
GetSecretByNameRequest,
1315
GetSecretRequest,
16+
GetSecretVersionByNameRequest,
1417
GetSecretVersionRequest,
18+
ListSecretVersionsByNameRequest,
1519
ListSecretVersionsRequest,
1620
ListSecretVersionsResponse,
1721
ListSecretsRequest,

packages/clients/src/api/secret/v1alpha1/types.gen.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,13 @@ export type GetSecretRequest = {
109109
secretId: string
110110
}
111111

112+
export type GetSecretByNameRequest = {
113+
/** Region to target. If none is passed will use default region from the config */
114+
region?: Region
115+
/** Name of the Secret */
116+
secretName: string
117+
}
118+
112119
export type UpdateSecretRequest = {
113120
/** Region to target. If none is passed will use default region from the config */
114121
region?: Region
@@ -129,6 +136,8 @@ export type ListSecretsRequest = {
129136
organizationId?: string
130137
/** ID of a project to filter on (optional) */
131138
projectId?: string
139+
/** Secret name to filter on (optional) */
140+
name?: string
132141
/** List of tags to filter on (optional) */
133142
tags?: string[]
134143
orderBy?: ListSecretsRequestOrderBy
@@ -163,6 +172,15 @@ export type GetSecretVersionRequest = {
163172
revision: string
164173
}
165174

175+
export type GetSecretVersionByNameRequest = {
176+
/** Region to target. If none is passed will use default region from the config */
177+
region?: Region
178+
/** Name of the Secret */
179+
secretName: string
180+
/** Revision of the SecretVersion (may be a number or "latest") */
181+
revision: string
182+
}
183+
166184
export type UpdateSecretVersionRequest = {
167185
/** Region to target. If none is passed will use default region from the config */
168186
region?: Region
@@ -185,6 +203,17 @@ export type ListSecretVersionsRequest = {
185203
status?: SecretVersionStatus[]
186204
}
187205

206+
export type ListSecretVersionsByNameRequest = {
207+
/** Region to target. If none is passed will use default region from the config */
208+
region?: Region
209+
/** Name of the Secret */
210+
secretName: string
211+
page?: number
212+
pageSize?: number
213+
/** Filter results by status */
214+
status?: SecretVersionStatus[]
215+
}
216+
188217
export type DestroySecretVersionRequest = {
189218
/** Region to target. If none is passed will use default region from the config */
190219
region?: Region
@@ -220,3 +249,12 @@ export type AccessSecretVersionRequest = {
220249
/** Revision of the SecretVersion (may be a number or "latest") */
221250
revision: string
222251
}
252+
253+
export type AccessSecretVersionByNameRequest = {
254+
/** Region to target. If none is passed will use default region from the config */
255+
region?: Region
256+
/** Name of the Secret */
257+
secretName: string
258+
/** Revision of the SecretVersion (may be a number or "latest") */
259+
revision: string
260+
}

0 commit comments

Comments
 (0)