@scaleway/sdk-jobs 2.2.1 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,11 @@ class API extends API$1 {
9
9
  * type ∈ {'zone','region','global','unspecified'}
10
10
  */
11
11
  static LOCALITY = toApiLocality({
12
- regions: ["fr-par", "nl-ams", "pl-waw"]
12
+ regions: [
13
+ "fr-par",
14
+ "nl-ams",
15
+ "pl-waw"
16
+ ]
13
17
  });
14
18
  /**
15
19
  * Create a new job definition in a specified Project.
@@ -49,10 +53,7 @@ class API extends API$1 {
49
53
  ["order_by", request.orderBy],
50
54
  ["organization_id", request.organizationId],
51
55
  ["page", request.page],
52
- [
53
- "page_size",
54
- request.pageSize ?? this.client.settings.defaultPageSize
55
- ],
56
+ ["page_size", request.pageSize ?? this.client.settings.defaultPageSize],
56
57
  ["project_id", request.projectId]
57
58
  )
58
59
  },
@@ -64,11 +65,7 @@ class API extends API$1 {
64
65
  * @param request - The request {@link ListJobDefinitionsRequest}
65
66
  * @returns A Promise of ListJobDefinitionsResponse
66
67
  */
67
- listJobDefinitions = (request = {}) => enrichForPagination(
68
- "jobDefinitions",
69
- this.pageOfListJobDefinitions,
70
- request
71
- );
68
+ listJobDefinitions = (request = {}) => enrichForPagination("jobDefinitions", this.pageOfListJobDefinitions, request);
72
69
  /**
73
70
  * Update an existing job definition associated with the specified unique identifier.
74
71
  *
@@ -91,10 +88,12 @@ class API extends API$1 {
91
88
  *
92
89
  * @param request - The request {@link DeleteJobDefinitionRequest}
93
90
  */
94
- deleteJobDefinition = (request) => this.client.fetch({
95
- method: "DELETE",
96
- path: `/serverless-jobs/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam("jobDefinitionId", request.jobDefinitionId)}`
97
- });
91
+ deleteJobDefinition = (request) => this.client.fetch(
92
+ {
93
+ method: "DELETE",
94
+ path: `/serverless-jobs/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam("jobDefinitionId", request.jobDefinitionId)}`
95
+ }
96
+ );
98
97
  /**
99
98
  * Run an existing job definition by its unique identifier. This will create a new job run.
100
99
  *
@@ -121,10 +120,7 @@ class API extends API$1 {
121
120
  createJobDefinitionSecrets = (request) => this.client.fetch(
122
121
  {
123
122
  body: JSON.stringify(
124
- marshalCreateJobDefinitionSecretsRequest(
125
- request,
126
- this.client.settings
127
- )
123
+ marshalCreateJobDefinitionSecretsRequest(request, this.client.settings)
128
124
  ),
129
125
  headers: jsonContentHeaders,
130
126
  method: "POST",
@@ -167,10 +163,7 @@ class API extends API$1 {
167
163
  updateJobDefinitionSecret = (request) => this.client.fetch(
168
164
  {
169
165
  body: JSON.stringify(
170
- marshalUpdateJobDefinitionSecretRequest(
171
- request,
172
- this.client.settings
173
- )
166
+ marshalUpdateJobDefinitionSecretRequest(request, this.client.settings)
174
167
  ),
175
168
  headers: jsonContentHeaders,
176
169
  method: "PATCH",
@@ -183,10 +176,12 @@ class API extends API$1 {
183
176
  *
184
177
  * @param request - The request {@link DeleteJobDefinitionSecretRequest}
185
178
  */
186
- deleteJobDefinitionSecret = (request) => this.client.fetch({
187
- method: "DELETE",
188
- path: `/serverless-jobs/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam("jobDefinitionId", request.jobDefinitionId)}/secrets/${validatePathParam("secretId", request.secretId)}`
189
- });
179
+ deleteJobDefinitionSecret = (request) => this.client.fetch(
180
+ {
181
+ method: "DELETE",
182
+ path: `/serverless-jobs/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam("jobDefinitionId", request.jobDefinitionId)}/secrets/${validatePathParam("secretId", request.secretId)}`
183
+ }
184
+ );
190
185
  /**
191
186
  * Get a job run by its unique identifier.
192
187
  *
@@ -224,10 +219,7 @@ class API extends API$1 {
224
219
  ["order_by", request.orderBy],
225
220
  ["organization_id", request.organizationId],
226
221
  ["page", request.page],
227
- [
228
- "page_size",
229
- request.pageSize ?? this.client.settings.defaultPageSize
230
- ],
222
+ ["page_size", request.pageSize ?? this.client.settings.defaultPageSize],
231
223
  ["project_id", request.projectId],
232
224
  ["state", request.state],
233
225
  ["states", request.states]
@@ -1,4 +1,4 @@
1
- export { API } from './api.gen.js';
1
+ export { API, } from './api.gen.js';
2
2
  export * from './content.gen.js';
3
3
  export * from './marshalling.gen.js';
4
4
  export type { CreateJobDefinitionRequest, CreateJobDefinitionRequestCronScheduleConfig, CreateJobDefinitionSecretsRequest, CreateJobDefinitionSecretsRequestSecretConfig, CreateJobDefinitionSecretsResponse, CronSchedule, DeleteJobDefinitionRequest, DeleteJobDefinitionSecretRequest, GetJobDefinitionRequest, GetJobDefinitionSecretRequest, GetJobRunRequest, GetJobsLimitsRequest, JobDefinition, JobRun, JobRunState, JobsLimits, ListJobDefinitionSecretsRequest, ListJobDefinitionSecretsResponse, ListJobDefinitionsRequest, ListJobDefinitionsRequestOrderBy, ListJobDefinitionsResponse, ListJobRunsRequest, ListJobRunsRequestOrderBy, ListJobRunsResponse, ListJobsResourcesRequest, ListJobsResourcesResponse, Resource, Secret, SecretEnvVar, SecretFile, StartJobDefinitionRequest, StartJobDefinitionResponse, StopJobRunRequest, UpdateJobDefinitionRequest, UpdateJobDefinitionRequestCronScheduleConfig, UpdateJobDefinitionSecretRequest, } from './types.gen.js';
@@ -132,10 +132,7 @@ const unmarshalListJobDefinitionsResponse = (data) => {
132
132
  );
133
133
  }
134
134
  return {
135
- jobDefinitions: unmarshalArrayOfObject(
136
- data.job_definitions,
137
- unmarshalJobDefinition
138
- ),
135
+ jobDefinitions: unmarshalArrayOfObject(data.job_definitions, unmarshalJobDefinition),
139
136
  totalCount: data.total_count
140
137
  };
141
138
  };
@@ -188,9 +185,7 @@ const marshalCreateJobDefinitionRequestCronScheduleConfig = (request, defaults)
188
185
  const marshalCreateJobDefinitionRequest = (request, defaults) => ({
189
186
  command: request.command,
190
187
  cpu_limit: request.cpuLimit,
191
- cron_schedule: request.cronSchedule !== void 0 ? marshalCreateJobDefinitionRequestCronScheduleConfig(
192
- request.cronSchedule
193
- ) : void 0,
188
+ cron_schedule: request.cronSchedule !== void 0 ? marshalCreateJobDefinitionRequestCronScheduleConfig(request.cronSchedule) : void 0,
194
189
  description: request.description,
195
190
  environment_variables: request.environmentVariables !== void 0 ? request.environmentVariables : void 0,
196
191
  image_uri: request.imageUri,
@@ -204,14 +199,18 @@ const marshalCreateJobDefinitionSecretsRequestSecretConfig = (request, defaults)
204
199
  secret_manager_id: request.secretManagerId,
205
200
  secret_manager_version: request.secretManagerVersion,
206
201
  ...resolveOneOf([
207
- { param: "path", value: request.path },
208
- { param: "env_var_name", value: request.envVarName }
202
+ {
203
+ param: "path",
204
+ value: request.path
205
+ },
206
+ {
207
+ param: "env_var_name",
208
+ value: request.envVarName
209
+ }
209
210
  ])
210
211
  });
211
212
  const marshalCreateJobDefinitionSecretsRequest = (request, defaults) => ({
212
- secrets: request.secrets.map(
213
- (elt) => marshalCreateJobDefinitionSecretsRequestSecretConfig(elt)
214
- )
213
+ secrets: request.secrets.map((elt) => marshalCreateJobDefinitionSecretsRequestSecretConfig(elt))
215
214
  });
216
215
  const marshalStartJobDefinitionRequest = (request, defaults) => ({
217
216
  command: request.command,
@@ -225,9 +224,7 @@ const marshalUpdateJobDefinitionRequestCronScheduleConfig = (request, defaults)
225
224
  const marshalUpdateJobDefinitionRequest = (request, defaults) => ({
226
225
  command: request.command,
227
226
  cpu_limit: request.cpuLimit,
228
- cron_schedule: request.cronSchedule !== void 0 ? marshalUpdateJobDefinitionRequestCronScheduleConfig(
229
- request.cronSchedule
230
- ) : void 0,
227
+ cron_schedule: request.cronSchedule !== void 0 ? marshalUpdateJobDefinitionRequestCronScheduleConfig(request.cronSchedule) : void 0,
231
228
  description: request.description,
232
229
  environment_variables: request.environmentVariables,
233
230
  image_uri: request.imageUri,
@@ -239,8 +236,14 @@ const marshalUpdateJobDefinitionRequest = (request, defaults) => ({
239
236
  const marshalUpdateJobDefinitionSecretRequest = (request, defaults) => ({
240
237
  secret_manager_version: request.secretManagerVersion,
241
238
  ...resolveOneOf([
242
- { param: "path", value: request.path },
243
- { param: "env_var_name", value: request.envVarName }
239
+ {
240
+ param: "path",
241
+ value: request.path
242
+ },
243
+ {
244
+ param: "env_var_name",
245
+ value: request.envVarName
246
+ }
244
247
  ])
245
248
  });
246
249
  export {
@@ -9,7 +9,11 @@ class API extends API$1 {
9
9
  * type ∈ {'zone','region','global','unspecified'}
10
10
  */
11
11
  static LOCALITY = toApiLocality({
12
- regions: ["fr-par", "nl-ams", "pl-waw"]
12
+ regions: [
13
+ "fr-par",
14
+ "nl-ams",
15
+ "pl-waw"
16
+ ]
13
17
  });
14
18
  /**
15
19
  * Create a new job definition in a specified Project.
@@ -49,10 +53,7 @@ class API extends API$1 {
49
53
  ["order_by", request.orderBy],
50
54
  ["organization_id", request.organizationId],
51
55
  ["page", request.page],
52
- [
53
- "page_size",
54
- request.pageSize ?? this.client.settings.defaultPageSize
55
- ],
56
+ ["page_size", request.pageSize ?? this.client.settings.defaultPageSize],
56
57
  ["project_id", request.projectId]
57
58
  )
58
59
  },
@@ -64,11 +65,7 @@ class API extends API$1 {
64
65
  * @param request - The request {@link ListJobDefinitionsRequest}
65
66
  * @returns A Promise of ListJobDefinitionsResponse
66
67
  */
67
- listJobDefinitions = (request = {}) => enrichForPagination(
68
- "jobDefinitions",
69
- this.pageOfListJobDefinitions,
70
- request
71
- );
68
+ listJobDefinitions = (request = {}) => enrichForPagination("jobDefinitions", this.pageOfListJobDefinitions, request);
72
69
  /**
73
70
  * Update an existing job definition associated with the specified unique identifier.
74
71
  *
@@ -91,10 +88,12 @@ class API extends API$1 {
91
88
  *
92
89
  * @param request - The request {@link DeleteJobDefinitionRequest}
93
90
  */
94
- deleteJobDefinition = (request) => this.client.fetch({
95
- method: "DELETE",
96
- path: `/serverless-jobs/v1alpha2/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam("jobDefinitionId", request.jobDefinitionId)}`
97
- });
91
+ deleteJobDefinition = (request) => this.client.fetch(
92
+ {
93
+ method: "DELETE",
94
+ path: `/serverless-jobs/v1alpha2/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam("jobDefinitionId", request.jobDefinitionId)}`
95
+ }
96
+ );
98
97
  /**
99
98
  * Run an existing job definition using its unique identifier and create a new job run.
100
99
  *
@@ -134,10 +133,7 @@ class API extends API$1 {
134
133
  ["order_by", request.orderBy],
135
134
  ["organization_id", request.organizationId],
136
135
  ["page", request.page],
137
- [
138
- "page_size",
139
- request.pageSize ?? this.client.settings.defaultPageSize
140
- ],
136
+ ["page_size", request.pageSize ?? this.client.settings.defaultPageSize],
141
137
  ["project_id", request.projectId],
142
138
  ["reasons", request.reasons],
143
139
  ["state", request.state],
@@ -208,7 +204,9 @@ class API extends API$1 {
208
204
  {
209
205
  method: "GET",
210
206
  path: `/serverless-jobs/v1alpha2/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/secrets`,
211
- urlParams: urlParams(["job_definition_id", request.jobDefinitionId])
207
+ urlParams: urlParams(
208
+ ["job_definition_id", request.jobDefinitionId]
209
+ )
212
210
  },
213
211
  unmarshalListSecretsResponse
214
212
  );
@@ -234,10 +232,12 @@ class API extends API$1 {
234
232
  *
235
233
  * @param request - The request {@link DeleteSecretRequest}
236
234
  */
237
- deleteSecret = (request) => this.client.fetch({
238
- method: "DELETE",
239
- path: `/serverless-jobs/v1alpha2/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/secrets/${validatePathParam("secretId", request.secretId)}`
240
- });
235
+ deleteSecret = (request) => this.client.fetch(
236
+ {
237
+ method: "DELETE",
238
+ path: `/serverless-jobs/v1alpha2/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/secrets/${validatePathParam("secretId", request.secretId)}`
239
+ }
240
+ );
241
241
  /**
242
242
  * List job resources for the console.
243
243
  *
@@ -3,7 +3,8 @@ const JOB_RUN_TRANSIENT_STATUSES = [
3
3
  "validated",
4
4
  "queued",
5
5
  "running",
6
- "interrupting"
6
+ "interrupting",
7
+ "retrying"
7
8
  ];
8
9
  export {
9
10
  JOB_RUN_TRANSIENT_STATUSES
@@ -1,5 +1,5 @@
1
- export { API } from './api.gen.js';
1
+ export { API, } from './api.gen.js';
2
2
  export * from './content.gen.js';
3
3
  export * from './marshalling.gen.js';
4
- export type { CreateJobDefinitionRequest, CreateJobDefinitionRequestCronScheduleConfig, CreateSecretsRequest, CreateSecretsRequestSecretConfig, CreateSecretsResponse, CronSchedule, DeleteJobDefinitionRequest, DeleteSecretRequest, GetJobDefinitionRequest, GetJobLimitsRequest, GetJobRunRequest, GetSecretRequest, JobDefinition, JobLimits, JobRun, JobRunReason, JobRunState, ListJobDefinitionsRequest, ListJobDefinitionsRequestOrderBy, ListJobDefinitionsResponse, ListJobResourcesRequest, ListJobResourcesResponse, ListJobRunsRequest, ListJobRunsRequestOrderBy, ListJobRunsResponse, ListSecretsRequest, ListSecretsResponse, Resource, Secret, SecretEnvVar, SecretFile, StartJobDefinitionRequest, StartJobDefinitionResponse, StopJobRunRequest, UpdateJobDefinitionRequest, UpdateJobDefinitionRequestCronScheduleConfig, UpdateSecretRequest, } from './types.gen.js';
4
+ export type { CreateJobDefinitionRequest, CreateJobDefinitionRequestCronScheduleConfig, CreateSecretsRequest, CreateSecretsRequestSecretConfig, CreateSecretsResponse, CronSchedule, DeleteJobDefinitionRequest, DeleteSecretRequest, GetJobDefinitionRequest, GetJobLimitsRequest, GetJobRunRequest, GetSecretRequest, JobDefinition, JobLimits, JobRun, JobRunReason, JobRunState, ListJobDefinitionsRequest, ListJobDefinitionsRequestOrderBy, ListJobDefinitionsResponse, ListJobResourcesRequest, ListJobResourcesResponse, ListJobRunsRequest, ListJobRunsRequestOrderBy, ListJobRunsResponse, ListSecretsRequest, ListSecretsResponse, Resource, RetryPolicy, Secret, SecretEnvVar, SecretFile, StartJobDefinitionRequest, StartJobDefinitionResponse, StopJobRunRequest, UpdateJobDefinitionRequest, UpdateJobDefinitionRequestCronScheduleConfig, UpdateSecretRequest, } from './types.gen.js';
5
5
  export * as ValidationRules from './validation-rules.gen.js';
@@ -46,6 +46,16 @@ const unmarshalCronSchedule = (data) => {
46
46
  timezone: data.timezone
47
47
  };
48
48
  };
49
+ const unmarshalRetryPolicy = (data) => {
50
+ if (!isJSONObject(data)) {
51
+ throw new TypeError(
52
+ `Unmarshalling the type 'RetryPolicy' failed as data isn't a dictionary.`
53
+ );
54
+ }
55
+ return {
56
+ maxRetries: data.max_retries
57
+ };
58
+ };
49
59
  const unmarshalJobDefinition = (data) => {
50
60
  if (!isJSONObject(data)) {
51
61
  throw new TypeError(
@@ -68,6 +78,7 @@ const unmarshalJobDefinition = (data) => {
68
78
  name: data.name,
69
79
  projectId: data.project_id,
70
80
  region: data.region,
81
+ retryPolicy: data.retry_policy ? unmarshalRetryPolicy(data.retry_policy) : void 0,
71
82
  startupCommand: data.startup_command,
72
83
  updatedAt: unmarshalDate(data.updated_at)
73
84
  };
@@ -80,6 +91,7 @@ const unmarshalJobRun = (data) => {
80
91
  }
81
92
  return {
82
93
  args: data.args,
94
+ attempts: data.attempts,
83
95
  command: data.command,
84
96
  cpuLimit: data.cpu_limit,
85
97
  createdAt: unmarshalDate(data.created_at),
@@ -127,10 +139,7 @@ const unmarshalListJobDefinitionsResponse = (data) => {
127
139
  );
128
140
  }
129
141
  return {
130
- jobDefinitions: unmarshalArrayOfObject(
131
- data.job_definitions,
132
- unmarshalJobDefinition
133
- ),
142
+ jobDefinitions: unmarshalArrayOfObject(data.job_definitions, unmarshalJobDefinition),
134
143
  totalCount: data.total_count
135
144
  };
136
145
  };
@@ -191,13 +200,14 @@ const marshalCreateJobDefinitionRequestCronScheduleConfig = (request, defaults)
191
200
  schedule: request.schedule,
192
201
  timezone: request.timezone
193
202
  });
203
+ const marshalRetryPolicy = (request, defaults) => ({
204
+ max_retries: request.maxRetries
205
+ });
194
206
  const marshalCreateJobDefinitionRequest = (request, defaults) => ({
195
207
  args: request.args,
196
208
  command: request.command,
197
209
  cpu_limit: request.cpuLimit,
198
- cron_schedule: request.cronSchedule !== void 0 ? marshalCreateJobDefinitionRequestCronScheduleConfig(
199
- request.cronSchedule
200
- ) : void 0,
210
+ cron_schedule: request.cronSchedule !== void 0 ? marshalCreateJobDefinitionRequestCronScheduleConfig(request.cronSchedule) : void 0,
201
211
  description: request.description,
202
212
  environment_variables: request.environmentVariables !== void 0 ? request.environmentVariables : void 0,
203
213
  image_uri: request.imageUri,
@@ -206,21 +216,26 @@ const marshalCreateJobDefinitionRequest = (request, defaults) => ({
206
216
  memory_limit: request.memoryLimit,
207
217
  name: request.name || randomName("job"),
208
218
  project_id: request.projectId ?? defaults.defaultProjectId,
219
+ retry_policy: request.retryPolicy !== void 0 ? marshalRetryPolicy(request.retryPolicy) : void 0,
209
220
  startup_command: request.startupCommand
210
221
  });
211
222
  const marshalCreateSecretsRequestSecretConfig = (request, defaults) => ({
212
223
  secret_manager_id: request.secretManagerId,
213
224
  secret_manager_version: request.secretManagerVersion,
214
225
  ...resolveOneOf([
215
- { param: "path", value: request.path },
216
- { param: "env_var_name", value: request.envVarName }
226
+ {
227
+ param: "path",
228
+ value: request.path
229
+ },
230
+ {
231
+ param: "env_var_name",
232
+ value: request.envVarName
233
+ }
217
234
  ])
218
235
  });
219
236
  const marshalCreateSecretsRequest = (request, defaults) => ({
220
237
  job_definition_id: request.jobDefinitionId,
221
- secrets: request.secrets.map(
222
- (elt) => marshalCreateSecretsRequestSecretConfig(elt)
223
- )
238
+ secrets: request.secrets.map((elt) => marshalCreateSecretsRequestSecretConfig(elt))
224
239
  });
225
240
  const marshalStartJobDefinitionRequest = (request, defaults) => ({
226
241
  args: request.args,
@@ -237,9 +252,7 @@ const marshalUpdateJobDefinitionRequest = (request, defaults) => ({
237
252
  args: request.args,
238
253
  command: request.command,
239
254
  cpu_limit: request.cpuLimit,
240
- cron_schedule: request.cronSchedule !== void 0 ? marshalUpdateJobDefinitionRequestCronScheduleConfig(
241
- request.cronSchedule
242
- ) : void 0,
255
+ cron_schedule: request.cronSchedule !== void 0 ? marshalUpdateJobDefinitionRequestCronScheduleConfig(request.cronSchedule) : void 0,
243
256
  description: request.description,
244
257
  environment_variables: request.environmentVariables,
245
258
  image_uri: request.imageUri,
@@ -247,13 +260,20 @@ const marshalUpdateJobDefinitionRequest = (request, defaults) => ({
247
260
  local_storage_capacity: request.localStorageCapacity,
248
261
  memory_limit: request.memoryLimit,
249
262
  name: request.name,
263
+ retry_policy: request.retryPolicy !== void 0 ? marshalRetryPolicy(request.retryPolicy) : void 0,
250
264
  startup_command: request.startupCommand
251
265
  });
252
266
  const marshalUpdateSecretRequest = (request, defaults) => ({
253
267
  secret_manager_version: request.secretManagerVersion,
254
268
  ...resolveOneOf([
255
- { param: "path", value: request.path },
256
- { param: "env_var_name", value: request.envVarName }
269
+ {
270
+ param: "path",
271
+ value: request.path
272
+ },
273
+ {
274
+ param: "env_var_name",
275
+ value: request.envVarName
276
+ }
257
277
  ])
258
278
  });
259
279
  export {
@@ -1,6 +1,6 @@
1
1
  import type { Region as ScwRegion } from '@scaleway/sdk-client';
2
- export type JobRunReason = 'unknown_reason' | 'invalid_request' | 'timeout' | 'cancellation' | 'technical_error' | 'image_not_found' | 'invalid_image' | 'memory_usage_exceeded' | 'storage_usage_exceeded' | 'exited_with_error' | 'secret_disabled' | 'secret_not_found';
3
- export type JobRunState = 'unknown_state' | 'initialized' | 'validated' | 'queued' | 'running' | 'succeeded' | 'failed' | 'interrupting' | 'interrupted';
2
+ export type JobRunReason = 'unknown_reason' | 'invalid_request' | 'timeout' | 'cancellation' | 'technical_error' | 'image_not_found' | 'invalid_image' | 'memory_usage_exceeded' | 'storage_usage_exceeded' | 'exited_with_error' | 'secret_disabled' | 'secret_not_found' | 'quota_exceeded';
3
+ export type JobRunState = 'unknown_state' | 'initialized' | 'validated' | 'queued' | 'running' | 'succeeded' | 'failed' | 'interrupting' | 'interrupted' | 'retrying';
4
4
  export type ListJobDefinitionsRequestOrderBy = 'created_at_asc' | 'created_at_desc';
5
5
  export type ListJobRunsRequestOrderBy = 'created_at_asc' | 'created_at_desc';
6
6
  export interface SecretEnvVar {
@@ -19,6 +19,12 @@ export interface CronSchedule {
19
19
  */
20
20
  timezone: string;
21
21
  }
22
+ export interface RetryPolicy {
23
+ /**
24
+ * Maximum number of retries upon a job failure.
25
+ */
26
+ maxRetries: number;
27
+ }
22
28
  export interface CreateJobDefinitionRequestCronScheduleConfig {
23
29
  schedule: string;
24
30
  timezone: string;
@@ -87,6 +93,7 @@ export interface JobDefinition {
87
93
  cronSchedule?: CronSchedule;
88
94
  startupCommand: string[];
89
95
  args: string[];
96
+ retryPolicy?: RetryPolicy;
90
97
  /**
91
98
  * Region to target. If none is passed will use default region from the config.
92
99
  */
@@ -118,6 +125,7 @@ export interface JobRun {
118
125
  environmentVariables: Record<string, string>;
119
126
  startupCommand: string[];
120
127
  args: string[];
128
+ attempts?: number;
121
129
  /**
122
130
  * Region to target. If none is passed will use default region from the config.
123
131
  */
@@ -186,6 +194,10 @@ export type CreateJobDefinitionRequest = {
186
194
  * Configure a cron for the job.
187
195
  */
188
196
  cronSchedule?: CreateJobDefinitionRequestCronScheduleConfig;
197
+ /**
198
+ * Retry behaviour in case of job failure.
199
+ */
200
+ retryPolicy?: RetryPolicy;
189
201
  };
190
202
  export type CreateSecretsRequest = {
191
203
  /**
@@ -435,7 +447,14 @@ export type UpdateJobDefinitionRequest = {
435
447
  * Timeout of the job in seconds.
436
448
  */
437
449
  jobTimeout?: string;
450
+ /**
451
+ * Configure a cron for the job.
452
+ */
438
453
  cronSchedule?: UpdateJobDefinitionRequestCronScheduleConfig;
454
+ /**
455
+ * Retry behaviour in case of job failure.
456
+ */
457
+ retryPolicy?: RetryPolicy;
439
458
  };
440
459
  export type UpdateSecretRequest = {
441
460
  /**
@@ -61,6 +61,11 @@ export declare const ListJobRunsRequest: {
61
61
  lessThanOrEqual: number;
62
62
  };
63
63
  };
64
+ export declare const RetryPolicy: {
65
+ maxRetries: {
66
+ lessThanOrEqual: number;
67
+ };
68
+ };
64
69
  export declare const StartJobDefinitionRequest: {
65
70
  replicas: {
66
71
  greaterThan: number;
@@ -61,6 +61,11 @@ const ListJobRunsRequest = {
61
61
  lessThanOrEqual: 1e3
62
62
  }
63
63
  };
64
+ const RetryPolicy = {
65
+ maxRetries: {
66
+ lessThanOrEqual: 5
67
+ }
68
+ };
64
69
  const StartJobDefinitionRequest = {
65
70
  replicas: {
66
71
  greaterThan: 0
@@ -108,6 +113,7 @@ export {
108
113
  CronSchedule,
109
114
  ListJobDefinitionsRequest,
110
115
  ListJobRunsRequest,
116
+ RetryPolicy,
111
117
  StartJobDefinitionRequest,
112
118
  UpdateJobDefinitionRequest,
113
119
  UpdateJobDefinitionRequestCronScheduleConfig,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scaleway/sdk-jobs",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "description": "Scaleway SDK jobs",
5
5
  "license": "Apache-2.0",
6
6
  "files": [
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@scaleway/random-name": "5.1.2",
30
- "@scaleway/sdk-std": "2.1.0"
30
+ "@scaleway/sdk-std": "2.1.1"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@scaleway/sdk-client": "^2.1.0"