node-tfe
Version:
A Typescript Client for Terraform Cloud/Enterprise V2 API
297 lines • 22.1 kB
JavaScript
"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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