Skip to content

Commit 4a9227a

Browse files
authored
feat(serverless_jobs): add method to get jobs limits (#1527)
1 parent 664c1d2 commit 4a9227a

File tree

4 files changed

+45
-0
lines changed

4 files changed

+45
-0
lines changed

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
unmarshalCreateJobDefinitionSecretsResponse,
1717
unmarshalJobDefinition,
1818
unmarshalJobRun,
19+
unmarshalJobsLimits,
1920
unmarshalListJobDefinitionSecretsResponse,
2021
unmarshalListJobDefinitionsResponse,
2122
unmarshalListJobRunsResponse,
@@ -32,8 +33,10 @@ import type {
3233
GetJobDefinitionRequest,
3334
GetJobDefinitionSecretRequest,
3435
GetJobRunRequest,
36+
GetJobsLimitsRequest,
3537
JobDefinition,
3638
JobRun,
39+
JobsLimits,
3740
ListJobDefinitionSecretsRequest,
3841
ListJobDefinitionSecretsResponse,
3942
ListJobDefinitionsRequest,
@@ -321,4 +324,19 @@ export class API extends ParentAPI {
321324
},
322325
unmarshalListJobsResourcesResponse,
323326
)
327+
328+
/**
329+
* Get jobs limits for the console.
330+
*
331+
* @param request - The request {@link GetJobsLimitsRequest}
332+
* @returns A Promise of JobsLimits
333+
*/
334+
getJobsLimits = (request: Readonly<GetJobsLimitsRequest> = {}) =>
335+
this.client.fetch<JobsLimits>(
336+
{
337+
method: 'GET',
338+
path: `/serverless-jobs/v1alpha1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/jobs-limits`,
339+
},
340+
unmarshalJobsLimits,
341+
)
324342
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ export type {
1414
GetJobDefinitionRequest,
1515
GetJobDefinitionSecretRequest,
1616
GetJobRunRequest,
17+
GetJobsLimitsRequest,
1718
JobDefinition,
1819
JobRun,
1920
JobRunState,
21+
JobsLimits,
2022
ListJobDefinitionSecretsRequest,
2123
ListJobDefinitionSecretsResponse,
2224
ListJobDefinitionsRequest,

packages/clients/src/api/jobs/v1alpha1/marshalling.gen.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type {
1717
CronSchedule,
1818
JobDefinition,
1919
JobRun,
20+
JobsLimits,
2021
ListJobDefinitionSecretsResponse,
2122
ListJobDefinitionsResponse,
2223
ListJobRunsResponse,
@@ -154,6 +155,18 @@ export const unmarshalCreateJobDefinitionSecretsResponse = (
154155
} as CreateJobDefinitionSecretsResponse
155156
}
156157

158+
export const unmarshalJobsLimits = (data: unknown): JobsLimits => {
159+
if (!isJSONObject(data)) {
160+
throw new TypeError(
161+
`Unmarshalling the type 'JobsLimits' failed as data isn't a dictionary.`,
162+
)
163+
}
164+
165+
return {
166+
secretsPerJobDefinition: data.secrets_per_job_definition,
167+
} as JobsLimits
168+
}
169+
157170
export const unmarshalListJobDefinitionSecretsResponse = (
158171
data: unknown,
159172
): ListJobDefinitionSecretsResponse => {

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,18 @@ export type GetJobRunRequest = {
214214
jobRunId: string
215215
}
216216

217+
export type GetJobsLimitsRequest = {
218+
/**
219+
* Region to target. If none is passed will use default region from the
220+
* config.
221+
*/
222+
region?: Region
223+
}
224+
225+
export interface JobsLimits {
226+
secretsPerJobDefinition: number
227+
}
228+
217229
export type ListJobDefinitionSecretsRequest = {
218230
/**
219231
* Region to target. If none is passed will use default region from the

0 commit comments

Comments
 (0)