UNPKG

cloudways-js-client

Version:

A client library to power your applications with Cloudways API

67 lines (63 loc) 1.91 kB
import { apiCall } from "../core"; import { HttpMethod } from "../core/types"; /** * Create an SSH key for a server. * @param {number} serverId Numeric id of the server. * @param {string} sshKeyName Label for the SSH key. * @param {string} sshKey The SSH key. * @param {number} appCredsId Numeric id of the App Credentials (required for app level SSH keys). * @returns {Promise<number>} A promise resolving with the id of the created SSH key. * @example * ``` * 1234 * ``` */ export function createSSHKey( serverId: number, sshKeyName: string, sshKey: string, appCredsId: number ): Promise<number> { const data = { server_id: serverId, ssh_key_name: sshKeyName, ssh_key: sshKey, app_creds_id: appCredsId, }; return apiCall("/ssh_key", HttpMethod.POST, data).then( (response) => response.id ); } /** * Delete an SSH key from a server. * @param {number} serverId Numeric id of the server. * @param {number} sshKeyId Numeric id of the SSH key to delete. * @returns {Promise<void>} A promise resolving when the SSH key is successfully deleted. */ export function deleteSSHKey( serverId: number, sshKeyId: number ): Promise<void> { const endpoint = `/ssh_key/${sshKeyId}`; const data = { server_id: serverId }; return apiCall(endpoint, HttpMethod.DELETE, data); } /** * Update an SSH key on a server. * @param {number} serverId Numeric id of the server. * @param {number} sshKeyId Numeric id of the SSH key to update. * @param {string} sshKeyName New label for the SSH key. * @returns {Promise<void>} A promise resolving when the SSH key is successfully updated. */ export function updateSSHKey( serverId: number, sshKeyId: number, sshKeyName: string ): Promise<void> { const endpoint = `/ssh_key/${sshKeyId}`; const data = { server_id: serverId, ssh_key_name: sshKeyName, }; return apiCall(endpoint, HttpMethod.PUT, data); }