|
3 | 3 | import randomName from '@scaleway/random-name' |
4 | 4 | import { |
5 | 5 | isJSONObject, |
| 6 | + resolveOneOf, |
6 | 7 | unmarshalArrayOfObject, |
7 | 8 | unmarshalDate, |
8 | 9 | } from '../../../bridge' |
9 | 10 | import type { DefaultValues } from '../../../bridge' |
10 | 11 | import type { |
11 | 12 | CreateJobDefinitionRequest, |
12 | 13 | CreateJobDefinitionRequestCronScheduleConfig, |
| 14 | + CreateJobDefinitionSecretsRequest, |
| 15 | + CreateJobDefinitionSecretsRequestSecretConfig, |
| 16 | + CreateJobDefinitionSecretsResponse, |
13 | 17 | CronSchedule, |
14 | 18 | JobDefinition, |
15 | 19 | JobRun, |
| 20 | + ListJobDefinitionSecretsResponse, |
16 | 21 | ListJobDefinitionsResponse, |
17 | 22 | ListJobRunsResponse, |
18 | 23 | ListJobsResourcesResponse, |
19 | 24 | Resource, |
| 25 | + Secret, |
| 26 | + SecretEnvVar, |
| 27 | + SecretFile, |
20 | 28 | StartJobDefinitionRequest, |
21 | 29 | StartJobDefinitionResponse, |
22 | 30 | UpdateJobDefinitionRequest, |
23 | 31 | UpdateJobDefinitionRequestCronScheduleConfig, |
| 32 | + UpdateJobDefinitionSecretRequest, |
24 | 33 | } from './types.gen' |
25 | 34 |
|
| 35 | +const unmarshalSecretEnvVar = (data: unknown): SecretEnvVar => { |
| 36 | + if (!isJSONObject(data)) { |
| 37 | + throw new TypeError( |
| 38 | + `Unmarshalling the type 'SecretEnvVar' failed as data isn't a dictionary.`, |
| 39 | + ) |
| 40 | + } |
| 41 | + |
| 42 | + return { |
| 43 | + name: data.name, |
| 44 | + } as SecretEnvVar |
| 45 | +} |
| 46 | + |
| 47 | +const unmarshalSecretFile = (data: unknown): SecretFile => { |
| 48 | + if (!isJSONObject(data)) { |
| 49 | + throw new TypeError( |
| 50 | + `Unmarshalling the type 'SecretFile' failed as data isn't a dictionary.`, |
| 51 | + ) |
| 52 | + } |
| 53 | + |
| 54 | + return { |
| 55 | + path: data.path, |
| 56 | + } as SecretFile |
| 57 | +} |
| 58 | + |
| 59 | +export const unmarshalSecret = (data: unknown): Secret => { |
| 60 | + if (!isJSONObject(data)) { |
| 61 | + throw new TypeError( |
| 62 | + `Unmarshalling the type 'Secret' failed as data isn't a dictionary.`, |
| 63 | + ) |
| 64 | + } |
| 65 | + |
| 66 | + return { |
| 67 | + envVar: data.env_var ? unmarshalSecretEnvVar(data.env_var) : undefined, |
| 68 | + file: data.file ? unmarshalSecretFile(data.file) : undefined, |
| 69 | + secretId: data.secret_id, |
| 70 | + secretManagerId: data.secret_manager_id, |
| 71 | + secretManagerVersion: data.secret_manager_version, |
| 72 | + } as Secret |
| 73 | +} |
| 74 | + |
26 | 75 | const unmarshalCronSchedule = (data: unknown): CronSchedule => { |
27 | 76 | if (!isJSONObject(data)) { |
28 | 77 | throw new TypeError( |
@@ -91,6 +140,35 @@ export const unmarshalJobRun = (data: unknown): JobRun => { |
91 | 140 | } as JobRun |
92 | 141 | } |
93 | 142 |
|
| 143 | +export const unmarshalCreateJobDefinitionSecretsResponse = ( |
| 144 | + data: unknown, |
| 145 | +): CreateJobDefinitionSecretsResponse => { |
| 146 | + if (!isJSONObject(data)) { |
| 147 | + throw new TypeError( |
| 148 | + `Unmarshalling the type 'CreateJobDefinitionSecretsResponse' failed as data isn't a dictionary.`, |
| 149 | + ) |
| 150 | + } |
| 151 | + |
| 152 | + return { |
| 153 | + secrets: unmarshalArrayOfObject(data.secrets, unmarshalSecret), |
| 154 | + } as CreateJobDefinitionSecretsResponse |
| 155 | +} |
| 156 | + |
| 157 | +export const unmarshalListJobDefinitionSecretsResponse = ( |
| 158 | + data: unknown, |
| 159 | +): ListJobDefinitionSecretsResponse => { |
| 160 | + if (!isJSONObject(data)) { |
| 161 | + throw new TypeError( |
| 162 | + `Unmarshalling the type 'ListJobDefinitionSecretsResponse' failed as data isn't a dictionary.`, |
| 163 | + ) |
| 164 | + } |
| 165 | + |
| 166 | + return { |
| 167 | + secrets: unmarshalArrayOfObject(data.secrets, unmarshalSecret), |
| 168 | + totalCount: data.total_count, |
| 169 | + } as ListJobDefinitionSecretsResponse |
| 170 | +} |
| 171 | + |
94 | 172 | export const unmarshalListJobDefinitionsResponse = ( |
95 | 173 | data: unknown, |
96 | 174 | ): ListJobDefinitionsResponse => { |
@@ -199,6 +277,27 @@ export const marshalCreateJobDefinitionRequest = ( |
199 | 277 | project_id: request.projectId ?? defaults.defaultProjectId, |
200 | 278 | }) |
201 | 279 |
|
| 280 | +const marshalCreateJobDefinitionSecretsRequestSecretConfig = ( |
| 281 | + request: CreateJobDefinitionSecretsRequestSecretConfig, |
| 282 | + defaults: DefaultValues, |
| 283 | +): Record<string, unknown> => ({ |
| 284 | + secret_manager_id: request.secretManagerId, |
| 285 | + secret_manager_version: request.secretManagerVersion, |
| 286 | + ...resolveOneOf([ |
| 287 | + { param: 'path', value: request.path }, |
| 288 | + { param: 'env_var_name', value: request.envVarName }, |
| 289 | + ]), |
| 290 | +}) |
| 291 | + |
| 292 | +export const marshalCreateJobDefinitionSecretsRequest = ( |
| 293 | + request: CreateJobDefinitionSecretsRequest, |
| 294 | + defaults: DefaultValues, |
| 295 | +): Record<string, unknown> => ({ |
| 296 | + secrets: request.secrets.map(elt => |
| 297 | + marshalCreateJobDefinitionSecretsRequestSecretConfig(elt, defaults), |
| 298 | + ), |
| 299 | +}) |
| 300 | + |
202 | 301 | export const marshalStartJobDefinitionRequest = ( |
203 | 302 | request: StartJobDefinitionRequest, |
204 | 303 | defaults: DefaultValues, |
@@ -237,3 +336,14 @@ export const marshalUpdateJobDefinitionRequest = ( |
237 | 336 | memory_limit: request.memoryLimit, |
238 | 337 | name: request.name, |
239 | 338 | }) |
| 339 | + |
| 340 | +export const marshalUpdateJobDefinitionSecretRequest = ( |
| 341 | + request: UpdateJobDefinitionSecretRequest, |
| 342 | + defaults: DefaultValues, |
| 343 | +): Record<string, unknown> => ({ |
| 344 | + secret_manager_version: request.secretManagerVersion, |
| 345 | + ...resolveOneOf([ |
| 346 | + { param: 'path', value: request.path }, |
| 347 | + { param: 'env_var_name', value: request.envVarName }, |
| 348 | + ]), |
| 349 | +}) |
0 commit comments