From 3767bd8506b939c2500264439805c6cd67b68ab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lafont?= Date: Thu, 26 Jan 2023 15:57:04 +0100 Subject: [PATCH 1/2] feat(instance): add getServerUserData method --- .../clients/src/api/instance/v1/api.utils.ts | 18 ++++++++++++++++++ .../clients/src/api/instance/v1/types.utils.ts | 8 ++++++++ 2 files changed, 26 insertions(+) diff --git a/packages/clients/src/api/instance/v1/api.utils.ts b/packages/clients/src/api/instance/v1/api.utils.ts index 1c1a81171..e2d8cc9b0 100644 --- a/packages/clients/src/api/instance/v1/api.utils.ts +++ b/packages/clients/src/api/instance/v1/api.utils.ts @@ -39,6 +39,7 @@ import type { CreateServerRequest, DetachVolumeRequest, DetachVolumeResponse, + GetServerUserDataRequest, SetServerUserDataRequest, UpdateImageRequest, UpdateImageResponse, @@ -512,6 +513,23 @@ export class InstanceV1UtilsAPI extends API { ) .then(res => ({ image: res.image })) + /** + * Get the content of a user data on a server for the given key. + * + * @param request - The request {@link GetServerUserDataRequest} + */ + getServerUserData = (request: Readonly) => + this.client.fetch({ + method: 'GET', + path: `/instance/v1/zones/${validatePathParam( + 'zone', + request.zone ?? this.client.settings.defaultZone, + )}/servers/${validatePathParam( + 'serverId', + request.serverId, + )}/user_data/${validatePathParam('key', request.key)}`, + }) + /** * Sets the content of a user data on a server for the given key. * diff --git a/packages/clients/src/api/instance/v1/types.utils.ts b/packages/clients/src/api/instance/v1/types.utils.ts index 1783efc6b..3d917bf32 100644 --- a/packages/clients/src/api/instance/v1/types.utils.ts +++ b/packages/clients/src/api/instance/v1/types.utils.ts @@ -106,6 +106,14 @@ export interface UpdateImageResponse { image?: Image } +export type GetServerUserDataRequest = { + /** Zone to target. If none is passed will use default zone from the config */ + zone?: Zone + serverId: string + /** The user data key to get */ + key: string +} + export type SetServerUserDataRequest = { /** Zone to target. If none is passed will use default zone from the config */ zone?: Zone From 10877d5c696cf77c2604a179b8874c3b330ade6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lafont?= Date: Thu, 26 Jan 2023 16:32:45 +0100 Subject: [PATCH 2/2] feat(instance): pr feedbacks --- packages/clients/src/api/instance/v1/api.utils.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/clients/src/api/instance/v1/api.utils.ts b/packages/clients/src/api/instance/v1/api.utils.ts index e2d8cc9b0..ab522b09b 100644 --- a/packages/clients/src/api/instance/v1/api.utils.ts +++ b/packages/clients/src/api/instance/v1/api.utils.ts @@ -517,6 +517,7 @@ export class InstanceV1UtilsAPI extends API { * Get the content of a user data on a server for the given key. * * @param request - The request {@link GetServerUserDataRequest} + * @returns The content of the key */ getServerUserData = (request: Readonly) => this.client.fetch({