From 134134bcd676ae856bf273f0a3311a2e1e1f16d5 Mon Sep 17 00:00:00 2001 From: scaleway-bot Date: Mon, 7 Oct 2024 14:42:34 +0000 Subject: [PATCH] feat: update generated APIs --- .../clients/src/api/jobs/v1alpha1/api.gen.ts | 77 ++++++++++++ .../src/api/jobs/v1alpha1/index.gen.ts | 11 ++ .../src/api/jobs/v1alpha1/marshalling.gen.ts | 110 ++++++++++++++++++ .../src/api/jobs/v1alpha1/types.gen.ts | 92 +++++++++++++++ .../api/jobs/v1alpha1/validation-rules.gen.ts | 12 ++ .../clients/src/api/tem/v1alpha1/index.gen.ts | 2 + 6 files changed, 304 insertions(+) diff --git a/packages/clients/src/api/jobs/v1alpha1/api.gen.ts b/packages/clients/src/api/jobs/v1alpha1/api.gen.ts index 99e98a7b1..f2286a56b 100644 --- a/packages/clients/src/api/jobs/v1alpha1/api.gen.ts +++ b/packages/clients/src/api/jobs/v1alpha1/api.gen.ts @@ -9,32 +9,45 @@ import { import type { Region } from '../../../bridge' import { marshalCreateJobDefinitionRequest, + marshalCreateJobDefinitionSecretsRequest, marshalStartJobDefinitionRequest, marshalUpdateJobDefinitionRequest, + marshalUpdateJobDefinitionSecretRequest, + unmarshalCreateJobDefinitionSecretsResponse, unmarshalJobDefinition, unmarshalJobRun, + unmarshalListJobDefinitionSecretsResponse, unmarshalListJobDefinitionsResponse, unmarshalListJobRunsResponse, unmarshalListJobsResourcesResponse, + unmarshalSecret, unmarshalStartJobDefinitionResponse, } from './marshalling.gen' import type { CreateJobDefinitionRequest, + CreateJobDefinitionSecretsRequest, + CreateJobDefinitionSecretsResponse, DeleteJobDefinitionRequest, + DeleteJobDefinitionSecretRequest, GetJobDefinitionRequest, + GetJobDefinitionSecretRequest, GetJobRunRequest, JobDefinition, JobRun, + ListJobDefinitionSecretsRequest, + ListJobDefinitionSecretsResponse, ListJobDefinitionsRequest, ListJobDefinitionsResponse, ListJobRunsRequest, ListJobRunsResponse, ListJobsResourcesRequest, ListJobsResourcesResponse, + Secret, StartJobDefinitionRequest, StartJobDefinitionResponse, StopJobRunRequest, UpdateJobDefinitionRequest, + UpdateJobDefinitionSecretRequest, } from './types.gen' const jsonContentHeaders = { @@ -169,6 +182,70 @@ export class API extends ParentAPI { unmarshalStartJobDefinitionResponse, ) + createJobDefinitionSecrets = ( + request: Readonly, + ) => + this.client.fetch( + { + body: JSON.stringify( + marshalCreateJobDefinitionSecretsRequest( + request, + this.client.settings, + ), + ), + headers: jsonContentHeaders, + method: 'POST', + path: `/serverless-jobs/v1alpha1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam('jobDefinitionId', request.jobDefinitionId)}/secrets`, + }, + unmarshalCreateJobDefinitionSecretsResponse, + ) + + getJobDefinitionSecret = (request: Readonly) => + this.client.fetch( + { + method: 'GET', + path: `/serverless-jobs/v1alpha1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam('jobDefinitionId', request.jobDefinitionId)}/secrets/${validatePathParam('secretId', request.secretId)}`, + }, + unmarshalSecret, + ) + + listJobDefinitionSecrets = ( + request: Readonly, + ) => + this.client.fetch( + { + method: 'GET', + path: `/serverless-jobs/v1alpha1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam('jobDefinitionId', request.jobDefinitionId)}/secrets`, + }, + unmarshalListJobDefinitionSecretsResponse, + ) + + updateJobDefinitionSecret = ( + request: Readonly, + ) => + this.client.fetch( + { + body: JSON.stringify( + marshalUpdateJobDefinitionSecretRequest( + request, + this.client.settings, + ), + ), + headers: jsonContentHeaders, + method: 'PATCH', + path: `/serverless-jobs/v1alpha1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam('jobDefinitionId', request.jobDefinitionId)}/secrets/${validatePathParam('secretId', request.secretId)}`, + }, + unmarshalSecret, + ) + + deleteJobDefinitionSecret = ( + request: Readonly, + ) => + this.client.fetch({ + method: 'DELETE', + path: `/serverless-jobs/v1alpha1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/job-definitions/${validatePathParam('jobDefinitionId', request.jobDefinitionId)}/secrets/${validatePathParam('secretId', request.secretId)}`, + }) + /** * Get a job run by its unique identifier. * diff --git a/packages/clients/src/api/jobs/v1alpha1/index.gen.ts b/packages/clients/src/api/jobs/v1alpha1/index.gen.ts index d6fe68eb6..9f5526a91 100644 --- a/packages/clients/src/api/jobs/v1alpha1/index.gen.ts +++ b/packages/clients/src/api/jobs/v1alpha1/index.gen.ts @@ -5,13 +5,20 @@ export * from './content.gen' export type { CreateJobDefinitionRequest, CreateJobDefinitionRequestCronScheduleConfig, + CreateJobDefinitionSecretsRequest, + CreateJobDefinitionSecretsRequestSecretConfig, + CreateJobDefinitionSecretsResponse, CronSchedule, DeleteJobDefinitionRequest, + DeleteJobDefinitionSecretRequest, GetJobDefinitionRequest, + GetJobDefinitionSecretRequest, GetJobRunRequest, JobDefinition, JobRun, JobRunState, + ListJobDefinitionSecretsRequest, + ListJobDefinitionSecretsResponse, ListJobDefinitionsRequest, ListJobDefinitionsRequestOrderBy, ListJobDefinitionsResponse, @@ -21,10 +28,14 @@ export type { ListJobsResourcesRequest, ListJobsResourcesResponse, Resource, + Secret, + SecretEnvVar, + SecretFile, StartJobDefinitionRequest, StartJobDefinitionResponse, StopJobRunRequest, UpdateJobDefinitionRequest, UpdateJobDefinitionRequestCronScheduleConfig, + UpdateJobDefinitionSecretRequest, } from './types.gen' export * as ValidationRules from './validation-rules.gen' diff --git a/packages/clients/src/api/jobs/v1alpha1/marshalling.gen.ts b/packages/clients/src/api/jobs/v1alpha1/marshalling.gen.ts index 9ef49a320..99240063a 100644 --- a/packages/clients/src/api/jobs/v1alpha1/marshalling.gen.ts +++ b/packages/clients/src/api/jobs/v1alpha1/marshalling.gen.ts @@ -3,6 +3,7 @@ import randomName from '@scaleway/random-name' import { isJSONObject, + resolveOneOf, unmarshalArrayOfObject, unmarshalDate, } from '../../../bridge' @@ -10,19 +11,67 @@ import type { DefaultValues } from '../../../bridge' import type { CreateJobDefinitionRequest, CreateJobDefinitionRequestCronScheduleConfig, + CreateJobDefinitionSecretsRequest, + CreateJobDefinitionSecretsRequestSecretConfig, + CreateJobDefinitionSecretsResponse, CronSchedule, JobDefinition, JobRun, + ListJobDefinitionSecretsResponse, ListJobDefinitionsResponse, ListJobRunsResponse, ListJobsResourcesResponse, Resource, + Secret, + SecretEnvVar, + SecretFile, StartJobDefinitionRequest, StartJobDefinitionResponse, UpdateJobDefinitionRequest, UpdateJobDefinitionRequestCronScheduleConfig, + UpdateJobDefinitionSecretRequest, } from './types.gen' +const unmarshalSecretEnvVar = (data: unknown): SecretEnvVar => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'SecretEnvVar' failed as data isn't a dictionary.`, + ) + } + + return { + name: data.name, + } as SecretEnvVar +} + +const unmarshalSecretFile = (data: unknown): SecretFile => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'SecretFile' failed as data isn't a dictionary.`, + ) + } + + return { + path: data.path, + } as SecretFile +} + +export const unmarshalSecret = (data: unknown): Secret => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'Secret' failed as data isn't a dictionary.`, + ) + } + + return { + envVar: data.env_var ? unmarshalSecretEnvVar(data.env_var) : undefined, + file: data.file ? unmarshalSecretFile(data.file) : undefined, + secretId: data.secret_id, + secretManagerId: data.secret_manager_id, + secretManagerVersion: data.secret_manager_version, + } as Secret +} + const unmarshalCronSchedule = (data: unknown): CronSchedule => { if (!isJSONObject(data)) { throw new TypeError( @@ -91,6 +140,35 @@ export const unmarshalJobRun = (data: unknown): JobRun => { } as JobRun } +export const unmarshalCreateJobDefinitionSecretsResponse = ( + data: unknown, +): CreateJobDefinitionSecretsResponse => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'CreateJobDefinitionSecretsResponse' failed as data isn't a dictionary.`, + ) + } + + return { + secrets: unmarshalArrayOfObject(data.secrets, unmarshalSecret), + } as CreateJobDefinitionSecretsResponse +} + +export const unmarshalListJobDefinitionSecretsResponse = ( + data: unknown, +): ListJobDefinitionSecretsResponse => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'ListJobDefinitionSecretsResponse' failed as data isn't a dictionary.`, + ) + } + + return { + secrets: unmarshalArrayOfObject(data.secrets, unmarshalSecret), + totalCount: data.total_count, + } as ListJobDefinitionSecretsResponse +} + export const unmarshalListJobDefinitionsResponse = ( data: unknown, ): ListJobDefinitionsResponse => { @@ -199,6 +277,27 @@ export const marshalCreateJobDefinitionRequest = ( project_id: request.projectId ?? defaults.defaultProjectId, }) +const marshalCreateJobDefinitionSecretsRequestSecretConfig = ( + request: CreateJobDefinitionSecretsRequestSecretConfig, + defaults: DefaultValues, +): Record => ({ + secret_manager_id: request.secretManagerId, + secret_manager_version: request.secretManagerVersion, + ...resolveOneOf([ + { param: 'path', value: request.path }, + { param: 'env_var_name', value: request.envVarName }, + ]), +}) + +export const marshalCreateJobDefinitionSecretsRequest = ( + request: CreateJobDefinitionSecretsRequest, + defaults: DefaultValues, +): Record => ({ + secrets: request.secrets.map(elt => + marshalCreateJobDefinitionSecretsRequestSecretConfig(elt, defaults), + ), +}) + export const marshalStartJobDefinitionRequest = ( request: StartJobDefinitionRequest, defaults: DefaultValues, @@ -237,3 +336,14 @@ export const marshalUpdateJobDefinitionRequest = ( memory_limit: request.memoryLimit, name: request.name, }) + +export const marshalUpdateJobDefinitionSecretRequest = ( + request: UpdateJobDefinitionSecretRequest, + defaults: DefaultValues, +): Record => ({ + secret_manager_version: request.secretManagerVersion, + ...resolveOneOf([ + { param: 'path', value: request.path }, + { param: 'env_var_name', value: request.envVarName }, + ]), +}) diff --git a/packages/clients/src/api/jobs/v1alpha1/types.gen.ts b/packages/clients/src/api/jobs/v1alpha1/types.gen.ts index 7195f4c4c..79659fb64 100644 --- a/packages/clients/src/api/jobs/v1alpha1/types.gen.ts +++ b/packages/clients/src/api/jobs/v1alpha1/types.gen.ts @@ -18,6 +18,14 @@ export type ListJobDefinitionsRequestOrderBy = export type ListJobRunsRequestOrderBy = 'created_at_asc' | 'created_at_desc' +export interface SecretEnvVar { + name: string +} + +export interface SecretFile { + path: string +} + export interface CronSchedule { /** UNIX cron schedule to run job (e.g., '* * * * *'). */ schedule: string @@ -33,6 +41,25 @@ export interface CreateJobDefinitionRequestCronScheduleConfig { timezone: string } +export interface CreateJobDefinitionSecretsRequestSecretConfig { + secretManagerId: string + secretManagerVersion: string + /** One-of ('pathOrEnvVar'): at most one of 'path', 'envVarName' could be set. */ + path?: string + /** One-of ('pathOrEnvVar'): at most one of 'path', 'envVarName' could be set. */ + envVarName?: string +} + +export interface Secret { + secretId: string + secretManagerId: string + secretManagerVersion: string + /** One-of ('secretConfig'): at most one of 'file', 'envVar' could be set. */ + file?: SecretFile + /** One-of ('secretConfig'): at most one of 'file', 'envVar' could be set. */ + envVar?: SecretEnvVar +} + export interface JobDefinition { id: string name: string @@ -121,6 +148,22 @@ export type CreateJobDefinitionRequest = { cronSchedule?: CreateJobDefinitionRequestCronScheduleConfig } +export type CreateJobDefinitionSecretsRequest = { + /** + * Region to target. If none is passed will use default region from the + * config. + */ + region?: Region + /** UUID of the job definition to get. */ + jobDefinitionId: string + /** Secrets to inject into the job. */ + secrets: CreateJobDefinitionSecretsRequestSecretConfig[] +} + +export interface CreateJobDefinitionSecretsResponse { + secrets: Secret[] +} + export type DeleteJobDefinitionRequest = { /** * Region to target. If none is passed will use default region from the @@ -131,6 +174,16 @@ export type DeleteJobDefinitionRequest = { jobDefinitionId: string } +export type DeleteJobDefinitionSecretRequest = { + /** + * Region to target. If none is passed will use default region from the + * config. + */ + region?: Region + jobDefinitionId: string + secretId: string +} + export type GetJobDefinitionRequest = { /** * Region to target. If none is passed will use default region from the @@ -141,6 +194,16 @@ export type GetJobDefinitionRequest = { jobDefinitionId: string } +export type GetJobDefinitionSecretRequest = { + /** + * Region to target. If none is passed will use default region from the + * config. + */ + region?: Region + jobDefinitionId: string + secretId: string +} + export type GetJobRunRequest = { /** * Region to target. If none is passed will use default region from the @@ -151,6 +214,20 @@ export type GetJobRunRequest = { jobRunId: string } +export type ListJobDefinitionSecretsRequest = { + /** + * Region to target. If none is passed will use default region from the + * config. + */ + region?: Region + jobDefinitionId: string +} + +export interface ListJobDefinitionSecretsResponse { + secrets: Secret[] + totalCount: number +} + export type ListJobDefinitionsRequest = { /** * Region to target. If none is passed will use default region from the @@ -258,3 +335,18 @@ export type UpdateJobDefinitionRequest = { jobTimeout?: string cronSchedule?: UpdateJobDefinitionRequestCronScheduleConfig } + +export type UpdateJobDefinitionSecretRequest = { + /** + * Region to target. If none is passed will use default region from the + * config. + */ + region?: Region + jobDefinitionId: string + secretId: string + secretManagerVersion?: string + /** One-of ('secretConfig'): at most one of 'path', 'envVarName' could be set. */ + path?: string + /** One-of ('secretConfig'): at most one of 'path', 'envVarName' could be set. */ + envVarName?: string +} diff --git a/packages/clients/src/api/jobs/v1alpha1/validation-rules.gen.ts b/packages/clients/src/api/jobs/v1alpha1/validation-rules.gen.ts index ecc47f5cb..04648bbc9 100644 --- a/packages/clients/src/api/jobs/v1alpha1/validation-rules.gen.ts +++ b/packages/clients/src/api/jobs/v1alpha1/validation-rules.gen.ts @@ -31,6 +31,12 @@ export const CreateJobDefinitionRequestCronScheduleConfig = { }, } +export const CreateJobDefinitionSecretsRequestSecretConfig = { + secretManagerVersion: { + minLength: 1, + }, +} + export const CronSchedule = { schedule: { maxLength: 255, @@ -97,3 +103,9 @@ export const UpdateJobDefinitionRequestCronScheduleConfig = { minLength: 1, }, } + +export const UpdateJobDefinitionSecretRequest = { + secretManagerVersion: { + minLength: 1, + }, +} diff --git a/packages/clients/src/api/tem/v1alpha1/index.gen.ts b/packages/clients/src/api/tem/v1alpha1/index.gen.ts index 3c8406a62..7a6dcaeb0 100644 --- a/packages/clients/src/api/tem/v1alpha1/index.gen.ts +++ b/packages/clients/src/api/tem/v1alpha1/index.gen.ts @@ -15,6 +15,8 @@ export type { DeleteWebhookRequest, Domain, DomainLastStatus, + DomainLastStatusAutoconfigState, + DomainLastStatusAutoconfigStateReason, DomainLastStatusDkimRecord, DomainLastStatusDmarcRecord, DomainLastStatusRecordStatus,