UNPKG

node-tfe

Version:

A Typescript Client for Terraform Cloud/Enterprise V2 API

297 lines 22.1 kB
"use strict"; // Workspaces describes all the workspace related methods that the Terraform // Enterprise API supports. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Workspaces = void 0; var url_join_1 = __importDefault(require("url-join")); var WorkspaceCreateOptions_1 = require("../interfaces/WorkspaceCreateOptions"); var WorkspaceLockOptions_1 = require("../interfaces/WorkspaceLockOptions"); var WorkspaceUpdateOptions_1 = require("../interfaces/WorkspaceUpdateOptions"); var WorkspaceVariableCreateOptions_1 = require("../interfaces/WorkspaceVariableCreateOptions"); var WorkspaceVariableUpdateOptions_1 = require("../interfaces/WorkspaceVariableUpdateOptions"); var deserializer_1 = require("../utils/deserializer"); var parsePagination_1 = require("../utils/parsePagination"); var Workspaces = /** @class */ (function () { function Workspaces(client) { this.client = client; } Workspaces.prototype.create = function (organization, options) { return __awaiter(this, void 0, void 0, function () { var endpoint, serializedOptions, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/organizations', encodeURI(organization), 'workspaces'); return [4 /*yield*/, WorkspaceCreateOptions_1.WorkspaceCreateOptionsSerializer.serialize(options)]; case 1: serializedOptions = _a.sent(); return [4 /*yield*/, this.client.post(endpoint, serializedOptions)]; case 2: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.list = function (organization, options) { return __awaiter(this, void 0, void 0, function () { var endpoint, response, workspaceList; var _a; return __generator(this, function (_b) { switch (_b.label) { case 0: endpoint = (0, url_join_1.default)('/organizations/', encodeURI(organization), '/workspaces'); return [4 /*yield*/, this.client.get(endpoint, options)]; case 1: response = _b.sent(); _a = { pagination: (0, parsePagination_1.parsePagination)(response.meta.pagination) }; return [4 /*yield*/, (0, deserializer_1.deserialize)(response)]; case 2: workspaceList = (_a.items = _b.sent(), _a); return [2 /*return*/, workspaceList]; } }); }); }; Workspaces.prototype.read = function (organization, workspaceName, options) { return __awaiter(this, void 0, void 0, function () { var endpoint, response, deserializedResponse; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/organizations/', encodeURI(organization), '/workspaces', encodeURI(workspaceName)); return [4 /*yield*/, this.client.get(endpoint, options)]; case 1: response = _a.sent(); return [4 /*yield*/, (0, deserializer_1.deserialize)(response)]; case 2: deserializedResponse = _a.sent(); return [2 /*return*/, deserializedResponse]; } }); }); }; Workspaces.prototype.readById = function (workspaceId, options) { return __awaiter(this, void 0, void 0, function () { var endpoint, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/workspaces', encodeURI(workspaceId)); return [4 /*yield*/, this.client.get(endpoint, options)]; case 1: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.update = function (organization, workspace, options) { return __awaiter(this, void 0, void 0, function () { var endpoint, serializedOptions, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/organizations', encodeURI(organization), 'workspaces', encodeURI(workspace)); return [4 /*yield*/, WorkspaceUpdateOptions_1.WorkspaceUpdateOptionsSerializer.serialize(options)]; case 1: serializedOptions = _a.sent(); return [4 /*yield*/, this.client.patch(endpoint, serializedOptions)]; case 2: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.updateById = function (workspaceId, options) { return __awaiter(this, void 0, void 0, function () { var endpoint, serializedOptions, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/workspaces', encodeURI(workspaceId)); return [4 /*yield*/, WorkspaceUpdateOptions_1.WorkspaceUpdateOptionsSerializer.serialize(options)]; case 1: serializedOptions = _a.sent(); return [4 /*yield*/, this.client.patch(endpoint, serializedOptions)]; case 2: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.delete = function (organization, workspace) { return __awaiter(this, void 0, void 0, function () { var endpoint; return __generator(this, function (_a) { endpoint = (0, url_join_1.default)('/organizations', encodeURI(organization), 'workspaces', encodeURI(workspace)); return [2 /*return*/, this.client.delete(endpoint)]; }); }); }; Workspaces.prototype.deleteById = function (workspaceId) { return __awaiter(this, void 0, void 0, function () { var endpoint; return __generator(this, function (_a) { endpoint = (0, url_join_1.default)('/workspaces', encodeURI(workspaceId)); return [2 /*return*/, this.client.delete(endpoint)]; }); }); }; Workspaces.prototype.lock = function (workspaceId, options) { if (options === void 0) { options = {}; } return __awaiter(this, void 0, void 0, function () { var endpoint, serializedOptions, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/workspaces', encodeURI(workspaceId), '/actions/lock'); return [4 /*yield*/, WorkspaceLockOptions_1.WorkspaceLockOptionsSerializer.serialize(options)]; case 1: serializedOptions = _a.sent(); return [4 /*yield*/, this.client.post(endpoint, serializedOptions)]; case 2: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.unlock = function (workspaceId) { return __awaiter(this, void 0, void 0, function () { var endpoint, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/workspaces', encodeURI(workspaceId), '/actions/unlock'); return [4 /*yield*/, this.client.post(endpoint)]; case 1: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.forceUnlock = function (workspaceId) { return __awaiter(this, void 0, void 0, function () { var endpoint, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/workspaces', encodeURI(workspaceId), '/actions/force-unlock'); return [4 /*yield*/, this.client.post(endpoint)]; case 1: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.createVariable = function (workspaceId, options) { return __awaiter(this, void 0, void 0, function () { var endpoint, serializedOptions, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/workspaces', encodeURI(workspaceId), 'vars'); return [4 /*yield*/, WorkspaceVariableCreateOptions_1.WorkspaceVariableCreateOptionsSerializer.serialize(options)]; case 1: serializedOptions = _a.sent(); return [4 /*yield*/, this.client.post(endpoint, serializedOptions)]; case 2: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.listVariables = function (workspaceId) { return __awaiter(this, void 0, void 0, function () { var endpoint, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/workspaces/', encodeURI(workspaceId), 'vars'); return [4 /*yield*/, this.client.get(endpoint)]; case 1: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.updateVariable = function (workspaceId, variableId, options) { return __awaiter(this, void 0, void 0, function () { var endpoint, serializedOptions, response; return __generator(this, function (_a) { switch (_a.label) { case 0: endpoint = (0, url_join_1.default)('/workspaces', encodeURI(workspaceId), 'vars', encodeURI(variableId)); return [4 /*yield*/, WorkspaceVariableUpdateOptions_1.WorkspaceVariableUpdateOptionsSerializer.serialize(options)]; case 1: serializedOptions = _a.sent(); return [4 /*yield*/, this.client.patch(endpoint, serializedOptions)]; case 2: response = _a.sent(); return [2 /*return*/, (0, deserializer_1.deserialize)(response)]; } }); }); }; Workspaces.prototype.deleteVariable = function (workspaceId, variableId) { return __awaiter(this, void 0, void 0, function () { var endpoint; return __generator(this, function (_a) { endpoint = (0, url_join_1.default)('/workspaces', encodeURI(workspaceId), 'vars', encodeURI(variableId)); return [2 /*return*/, this.client.delete(endpoint)]; }); }); }; return Workspaces; }()); exports.Workspaces = Workspaces; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbmRwb2ludHMvd29ya3NwYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNEVBQTRFO0FBQzVFLDJCQUEyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTNCLHNEQUErQjtBQUcvQiwrRUFHOEM7QUFHOUMsMkVBRzRDO0FBRTVDLCtFQUc4QztBQUU5QywrRkFHc0Q7QUFDdEQsK0ZBR3NEO0FBRXRELHNEQUFvRDtBQUNwRCw0REFBMkQ7QUFDM0Q7SUFHRSxvQkFBWSxNQUFjO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFSywyQkFBTSxHQUFaLFVBQ0UsWUFBb0IsRUFDcEIsT0FBK0I7Ozs7Ozt3QkFFekIsUUFBUSxHQUFHLElBQUEsa0JBQU8sRUFDdEIsZ0JBQWdCLEVBQ2hCLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFDdkIsWUFBWSxDQUNiLENBQUM7d0JBQ3dCLHFCQUFNLHlEQUFnQyxDQUFDLFNBQVMsQ0FDeEUsT0FBTyxDQUNSLEVBQUE7O3dCQUZLLGlCQUFpQixHQUFHLFNBRXpCO3dCQUVnQixxQkFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsRUFBQTs7d0JBQTlELFFBQVEsR0FBRyxTQUFtRDt3QkFDcEUsc0JBQU8sSUFBQSwwQkFBVyxFQUFDLFFBQVEsQ0FBQyxFQUFDOzs7O0tBQzlCO0lBRUsseUJBQUksR0FBVixVQUNFLFlBQW9CLEVBQ3BCLE9BQThCOzs7Ozs7O3dCQUV4QixRQUFRLEdBQUcsSUFBQSxrQkFBTyxFQUN0QixpQkFBaUIsRUFDakIsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUN2QixhQUFhLENBQ2QsQ0FBQzt3QkFDZSxxQkFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVB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