UNPKG

ibm-cloud-databases

Version:
1,196 lines 53.6 kB
"use strict"; /** * (C) Copyright IBM Corp. 2021. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); /** * IBM OpenAPI SDK Code Generator Version: 99-SNAPSHOT-f9bb1b47-20210329-151039 */ var extend = require("extend"); var ibm_cloud_sdk_core_1 = require("ibm-cloud-sdk-core"); var common_1 = require("../lib/common"); /** * The IBM Cloud Databases API enables interaction between applications and Cloud Databases database deployments. * * Access to the API requires an IAM Bearer Token or an IAM API Key to be presented through bearer authentication. * * Deployment IDs are CRNs on the IBM Cloud Databases v5 API platform. No lookup or translation the Compose style UUIDs * is needed. The Deployment ID is a traditional UUID on the Compose v5 API platform. * * When you use CRNs, remember to URL escape the CRN value as they can include the forward-slash (/) character. */ var CloudDatabasesV5 = /** @class */ (function (_super) { __extends(CloudDatabasesV5, _super); /** * Construct a CloudDatabasesV5 object. * * @param {Object} options - Options for the service. * @param {string} [options.serviceUrl] - The base url to use when contacting the service. The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. * @param {Authenticator} options.authenticator - The Authenticator object used to authenticate requests to the service * @constructor * @returns {CloudDatabasesV5} */ function CloudDatabasesV5(options) { var _this = this; options = options || {}; _this = _super.call(this, options) || this; if (options.serviceUrl) { _this.setServiceUrl(options.serviceUrl); } return _this; } /************************* * Factory method ************************/ /** * Constructs an instance of CloudDatabasesV5 with passed in options and external configuration. * * @param {UserOptions} [options] - The parameters to send to the service. * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service * @param {string} [options.serviceUrl] - The URL for the service * @returns {CloudDatabasesV5} */ CloudDatabasesV5.newInstance = function (options) { options = options || {}; if (!options.serviceName) { options.serviceName = this.DEFAULT_SERVICE_NAME; } if (!options.authenticator) { options.authenticator = ibm_cloud_sdk_core_1.getAuthenticatorFromEnvironment(options.serviceName); } var service = new CloudDatabasesV5(options); service.configureService(options.serviceName); if (options.serviceUrl) { service.setServiceUrl(options.serviceUrl); } return service; }; /************************* * deployments ************************/ /** * List all deployable databases. * * Returns a list of all the types and associated major versions of database deployments that can be provisioned. * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.ListDeployablesResponse>>} */ CloudDatabasesV5.prototype.listDeployables = function (params) { var _params = Object.assign({}, params); var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'listDeployables'); var parameters = { options: { url: '/deployables', method: 'GET', }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * List all deployable regions. * * Returns a list of all the regions that deployments can be provisioned into from the current region. Used to * determine region availability for read-only replicas. * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.ListRegionsResponse>>} */ CloudDatabasesV5.prototype.listRegions = function (params) { var _params = Object.assign({}, params); var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'listRegions'); var parameters = { options: { url: '/regions', method: 'GET', }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Get deployment information. * * Gets the full data that is associated with a deployment. This data includes the ID, name, database type, and * version. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.GetDeploymentInfoResponse>>} */ CloudDatabasesV5.prototype.getDeploymentInfo = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'getDeploymentInfo'); var parameters = { options: { url: '/deployments/{id}', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * databaseUsers ************************/ /** * Creates a user based on user type. * * Creates a user in the database that can access the database through a connection. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {string} params.userType - User type. * @param {CreateDatabaseUserRequestUser} [params.user] - * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.CreateDatabaseUserResponse>>} */ CloudDatabasesV5.prototype.createDatabaseUser = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'userType']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var body = { 'user': _params.user }; var path = { 'id': _params.id, 'user_type': _params.userType }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'createDatabaseUser'); var parameters = { options: { url: '/deployments/{id}/users/{user_type}', method: 'POST', body: body, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', 'Content-Type': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Set specified user's password. * * Sets the password of a specified user. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {string} params.userType - User type. * @param {string} params.username - User ID. * @param {APasswordSettingUser} [params.user] - * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.ChangeUserPasswordResponse>>} */ CloudDatabasesV5.prototype.changeUserPassword = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'userType', 'username']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var body = { 'user': _params.user }; var path = { 'id': _params.id, 'user_type': _params.userType, 'username': _params.username }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'changeUserPassword'); var parameters = { options: { url: '/deployments/{id}/users/{user_type}/{username}', method: 'PATCH', body: body, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', 'Content-Type': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Deletes a user based on user type. * * Removes a user from the deployment. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {string} params.userType - User type. * @param {string} params.username - Username. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.DeleteDatabaseUserResponse>>} */ CloudDatabasesV5.prototype.deleteDatabaseUser = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'userType', 'username']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id, 'user_type': _params.userType, 'username': _params.username }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'deleteDatabaseUser'); var parameters = { options: { url: '/deployments/{id}/users/{user_type}/{username}', method: 'DELETE', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * databaseConfiguration ************************/ /** * Change your database configuration. * * Change your database configuration. Available for PostgreSQL, EnterpriseDB, and Redis ONLY. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {SetConfigurationConfiguration} params.configuration - * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.UpdateDatabaseConfigurationResponse>>} */ CloudDatabasesV5.prototype.updateDatabaseConfiguration = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'configuration']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var body = { 'configuration': _params.configuration }; var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'updateDatabaseConfiguration'); var parameters = { options: { url: '/deployments/{id}/configuration', method: 'PATCH', body: body, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', 'Content-Type': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * remotes ************************/ /** * List read-only replica information. * * Get the read-only replicas associated with a deployment. Available for PostgreSQL and EnterpriseDB ONLY. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.ListRemotesResponse>>} */ CloudDatabasesV5.prototype.listRemotes = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'listRemotes'); var parameters = { options: { url: '/deployments/{id}/remotes', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Resync read-only replica. * * Reinitialize a read-only replica. Available for PostgreSQL and EnterpriseDB ONLY. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID of the read-only replica. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.ResyncReplicaResponse>>} */ CloudDatabasesV5.prototype.resyncReplica = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'resyncReplica'); var parameters = { options: { url: '/deployments/{id}/remotes/resync', method: 'POST', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Promote read-only replica to a full deployment. * * Promote a read-only replica or upgrade and promote a read-only replica. Available for PostgreSQL and EnterpriseDB * ONLY. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID of the read-only replica to promote. * @param {SetPromotionPromotion} params.promotion - * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.SetPromotionResponse>>} */ CloudDatabasesV5.prototype.setPromotion = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'promotion']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var body = { 'Promotion': _params.promotion }; var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'setPromotion'); var parameters = { options: { url: '/deployments/{id}/remotes/promotion', method: 'POST', body: body, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', 'Content-Type': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * tasks ************************/ /** * List currently running tasks on a deployment. * * Obtain a list of tasks currently running or recently run on a deployment. Tasks are ephemeral. Records of * successful tasks are shown for 24-48 hours, and unsuccessful tasks are shown for 7-8 days. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.Tasks>>} */ CloudDatabasesV5.prototype.listDeploymentTasks = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'listDeploymentTasks'); var parameters = { options: { url: '/deployments/{id}/tasks', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Get information about a task. * * Get information about a task and its status. Tasks themselves are persistent so old tasks can be consulted as well * as running tasks. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Task ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.GetTaskResponse>>} */ CloudDatabasesV5.prototype.getTask = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'getTask'); var parameters = { options: { url: '/tasks/{id}', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * backups ************************/ /** * Get information about a backup. * * Get information about a backup, such as creation date. * * @param {Object} params - The parameters to send to the service. * @param {string} params.backupId - Backup ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.GetBackupInfoResponse>>} */ CloudDatabasesV5.prototype.getBackupInfo = function (params) { var _params = Object.assign({}, params); var requiredParams = ['backupId']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'backup_id': _params.backupId }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'getBackupInfo'); var parameters = { options: { url: '/backups/{backup_id}', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * List currently available backups from a deployment. * * Get details of all currently available backups from a deployment. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.Backups>>} */ CloudDatabasesV5.prototype.listDeploymentBackups = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'listDeploymentBackups'); var parameters = { options: { url: '/deployments/{id}/backups', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Initiate an on-demand backup. * * Signal the platform to create an on-demand backup for the specified deployment. The returned task can be polled to * track progress of the backup as it takes place. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.StartOndemandBackupResponse>>} */ CloudDatabasesV5.prototype.startOndemandBackup = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'startOndemandBackup'); var parameters = { options: { url: '/deployments/{id}/backups', method: 'POST', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Get earliest point-in-time-recovery timestamp. * * Returns the earliest available time for point-in-time-recovery in ISO8601 UTC format. PostgreSQL and EnterpriseDB * only. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.PointInTimeRecoveryData>>} */ CloudDatabasesV5.prototype.getPitRdata = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'getPitRdata'); var parameters = { options: { url: '/deployments/{id}/point_in_time_recovery_data', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * connections ************************/ /** * Discover connection information for a deployment for a user with an endpoint type. * * Discover connection information for a deployment for a user with an endpoint type. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {string} params.userType - User type. * @param {string} params.userId - User ID. * @param {string} params.endpointType - Endpoint Type. The endpoint must be enabled on the deployment before its * connection information can be fetched. * @param {string} [params.certificateRoot] - Optional certificate root path to prepend certificate names. * Certificates would be stored in this directory for use by other commands. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.Connection>>} */ CloudDatabasesV5.prototype.getConnection = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'userType', 'userId', 'endpointType']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var query = { 'certificate_root': _params.certificateRoot }; var path = { 'id': _params.id, 'user_type': _params.userType, 'user_id': _params.userId, 'endpoint_type': _params.endpointType }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'getConnection'); var parameters = { options: { url: '/deployments/{id}/users/{user_type}/{user_id}/connections/{endpoint_type}', method: 'GET', qs: query, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Discover connection information for a deployment for a user with substitutions and an endpoint type. * * Discover connection information for a deployment for a user. Behaves the same as the GET method but substitutes the * provided password parameter into the returned connection information. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {string} params.userType - User type of `database` is the only currently supported value. * @param {string} params.userId - User ID. * @param {string} params.endpointType - Endpoint Type. The select endpoint must be enabled on the deployment before * its connection information can be fetched. * @param {string} [params.password] - Password to be substituted into the response. * @param {string} [params.certificateRoot] - Optional certificate root path to prepend certificate names. * Certificates would be stored in this directory for use by other commands. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.Connection>>} */ CloudDatabasesV5.prototype.completeConnection = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'userType', 'userId', 'endpointType']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var body = { 'password': _params.password, 'certificate_root': _params.certificateRoot }; var path = { 'id': _params.id, 'user_type': _params.userType, 'user_id': _params.userId, 'endpoint_type': _params.endpointType }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'completeConnection'); var parameters = { options: { url: '/deployments/{id}/users/{user_type}/{user_id}/connections/{endpoint_type}', method: 'POST', body: body, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', 'Content-Type': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * scaling ************************/ /** * List currently available scaling groups from a deployment. * * Scaling groups represent the various resources that are allocated to a deployment. This command allows for the * retrieval of all of the groups for a particular deployment. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.Groups>>} */ CloudDatabasesV5.prototype.listDeploymentScalingGroups = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'listDeploymentScalingGroups'); var parameters = { options: { url: '/deployments/{id}/groups', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Get default scaling groups for a new deployment. * * Scaling groups represent the various resources allocated to a deployment. When a new deployment is created, there * are a set of defaults for each database type. This endpoint returns them for a particular database. * * @param {Object} params - The parameters to send to the service. * @param {string} params.type - Database type name. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.Groups>>} */ CloudDatabasesV5.prototype.getDefaultScalingGroups = function (params) { var _params = Object.assign({}, params); var requiredParams = ['type']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'type': _params.type }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'getDefaultScalingGroups'); var parameters = { options: { url: '/deployables/{type}/groups', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Set scaling values on a specified group. * * Set scaling value on a specified group. Can only be performed on is_adjustable=true groups. Values set are for the * group as a whole and resources are distributed amongst the group. Values must be greater than or equal to the * minimum size and must be a multiple of the step size. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {string} params.groupId - Group Id. * @param {SetDeploymentScalingGroupRequest} params.setDeploymentScalingGroupRequest - Scaling group settings. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.SetDeploymentScalingGroupResponse>>} */ CloudDatabasesV5.prototype.setDeploymentScalingGroup = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'groupId', 'setDeploymentScalingGroupRequest']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var body = _params.setDeploymentScalingGroupRequest; var path = { 'id': _params.id, 'group_id': _params.groupId }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'setDeploymentScalingGroup'); var parameters = { options: { url: '/deployments/{id}/groups/{group_id}', method: 'PATCH', body: body, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', 'Content-Type': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * autoscaling ************************/ /** * Get the autoscaling configuration from a deployment. * * The Autoscaling configuration represents the various conditions that control autoscaling for a deployment. This * command allows for the retrieval of all autoscaling conditions for a particular deployment. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {string} params.groupId - Group ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.AutoscalingGroup>>} */ CloudDatabasesV5.prototype.getAutoscalingConditions = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'groupId']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id, 'group_id': _params.groupId }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'getAutoscalingConditions'); var parameters = { options: { url: '/deployments/{id}/groups/{group_id}/autoscaling', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Set the autoscaling configuration from a deployment. * * Enable, disable, or set the conditions for autoscaling on your deployment. Memory, disk, and CPU (if available) can * be set separately and are not all required. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {string} params.groupId - Group ID. * @param {AutoscalingSetGroupAutoscaling} params.autoscaling - * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.SetAutoscalingConditionsResponse>>} */ CloudDatabasesV5.prototype.setAutoscalingConditions = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id', 'groupId', 'autoscaling']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var body = { 'autoscaling': _params.autoscaling }; var path = { 'id': _params.id, 'group_id': _params.groupId }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'setAutoscalingConditions'); var parameters = { options: { url: '/deployments/{id}/groups/{group_id}/autoscaling', method: 'PATCH', body: body, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', 'Content-Type': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * management ************************/ /** * Kill connections to a PostgreSQL or EnterpriseDB deployment. * * Closes all the connections on a deployment. Available for PostgreSQL and EnterpriseDB ONLY. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.KillConnectionsResponse>>} */ CloudDatabasesV5.prototype.killConnections = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'killConnections'); var parameters = { options: { url: '/deployments/{id}/management/database_connections', method: 'DELETE', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /************************* * security ************************/ /** * Retrieve the allowlisted addresses and ranges for a deployment. * * Retrieve the allowlisted addresses and ranges for a deployment. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.Allowlist>>} */ CloudDatabasesV5.prototype.getAllowlist = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'getAllowlist'); var parameters = { options: { url: '/deployments/{id}/whitelists/ip_addresses', method: 'GET', path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Set the allowlist for a deployment. * * Set the allowlist for a deployment. This action overwrites all existing entries, so when you modify the allowlist * via a GET/update/PUT, provide the GET response's ETag header value in this endpoint's If-Match header to ensure * that changes that are made by other clients are not accidentally overwritten. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {AllowlistEntry[]} [params.ipAddresses] - An array of allowlist entries. * @param {string} [params.ifMatch] - Verify that the current allowlist matches a provided ETag value. Use in * conjunction with the GET operation's ETag header to ensure synchronicity between clients. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.SetAllowlistResponse>>} */ CloudDatabasesV5.prototype.setAllowlist = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var body = { 'ip_addresses': _params.ipAddresses }; var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'setAllowlist'); var parameters = { options: { url: '/deployments/{id}/whitelists/ip_addresses', method: 'PUT', body: body, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', 'Content-Type': 'application/json', 'If-Match': _params.ifMatch }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Add an address or range to the allowlist for a deployment. * * Add an address or range to the allowlist for a deployment. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @param {AllowlistEntry} [params.ipAddress] - * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers * @returns {Promise<CloudDatabasesV5.Response<CloudDatabasesV5.AddAllowlistEntryResponse>>} */ CloudDatabasesV5.prototype.addAllowlistEntry = function (params) { var _params = Object.assign({}, params); var requiredParams = ['id']; var missingParams = ibm_cloud_sdk_core_1.getMissingParams(_params, requiredParams); if (missingParams) { return Promise.reject(missingParams); } var body = { 'ip_address': _params.ipAddress }; var path = { 'id': _params.id }; var sdkHeaders = common_1.getSdkHeaders(CloudDatabasesV5.DEFAULT_SERVICE_NAME, 'v5', 'addAllowlistEntry'); var parameters = { options: { url: '/deployments/{id}/whitelists/ip_addresses', method: 'POST', body: body, path: path, }, defaultOptions: extend(true, {}, this.baseOptions, { headers: extend(true, sdkHeaders, { 'Accept': 'application/json', 'Content-Type': 'application/json', }, _params.headers), }), }; return this.createRequest(parameters); }; ; /** * Delete an address or range from the allowlist of a deployment. * * Delete an address or range from the allowlist of a deployment. * * @param {Object} params - The parameters to send to the service. * @param {string} params.id - Deployment ID. * @pa