mirror of
https://github.com/tribufu/proxmox-ve-openapi
synced 2026-05-06 07:07:28 +00:00
Update project
This commit is contained in:
parent
ca7f0b65d9
commit
82d19b6305
6 changed files with 112869 additions and 71873 deletions
12
.editorconfig
Normal file
12
.editorconfig
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
|
@ -1,197 +1,236 @@
|
|||
const pveapi = require('./source')
|
||||
const yaml = require('js-yaml')
|
||||
const pveapi = require("./source");
|
||||
const yaml = require("js-yaml");
|
||||
|
||||
const paths = {}
|
||||
const models = {}
|
||||
const responses = {}
|
||||
const tags = []
|
||||
const paths = {};
|
||||
const models = {};
|
||||
const responses = {};
|
||||
const tags = [];
|
||||
|
||||
const capitalizeFirst = (str) => str.charAt(0).toUpperCase() + str.slice(1)
|
||||
const capitalizeFirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
||||
|
||||
function generateOpId(method, path){
|
||||
let operation = path.split("/").map(capitalizeFirst).join('').replace(/[\-\_]/g, '')
|
||||
function generateOpId(method, path) {
|
||||
let operation = path
|
||||
.split("/")
|
||||
.map(capitalizeFirst)
|
||||
.join("")
|
||||
.replace(/[\-\_]/g, "");
|
||||
|
||||
operation = operation.replace(/\{[a-z]*\}/g, 'Single')
|
||||
operation = operation.replace(/\{[a-z]*\}/g, "Single");
|
||||
|
||||
const prefix = (() => {
|
||||
switch (method) {
|
||||
case "post":
|
||||
return "create"
|
||||
return "create";
|
||||
case "put":
|
||||
return "update"
|
||||
return "update";
|
||||
case "patch":
|
||||
return "update"
|
||||
return "update";
|
||||
default:
|
||||
return method
|
||||
return method;
|
||||
}
|
||||
})()
|
||||
})();
|
||||
|
||||
return prefix + operation
|
||||
return prefix + operation;
|
||||
}
|
||||
|
||||
const mapping = require('./mapping')
|
||||
const mapping = require("./mapping");
|
||||
|
||||
function filterSchema(p){
|
||||
function filterSchema(p) {
|
||||
const schema = {
|
||||
type: p.type
|
||||
type: p.type,
|
||||
};
|
||||
if (p.items) schema.items = filterSchema(p.items);
|
||||
if (p.properties) {
|
||||
schema.properties = {};
|
||||
Object.keys(p.properties).forEach(
|
||||
(name) =>
|
||||
(schema.properties[name] = filterSchema(p.properties[name]))
|
||||
);
|
||||
}
|
||||
if(p.items)
|
||||
schema.items = filterSchema(p.items)
|
||||
if(p.properties){
|
||||
schema.properties = {}
|
||||
Object.keys(p.properties).forEach(name => schema.properties[name] = filterSchema(p.properties[name]))
|
||||
}
|
||||
return schema
|
||||
return schema;
|
||||
}
|
||||
|
||||
function buildResponseSchema(source){
|
||||
const schema = { type: source.type || 'string', description: source.description || '' }
|
||||
if(schema.type === 'boolean')
|
||||
schema.type = 'integer'
|
||||
if(schema.type === 'null')
|
||||
schema.type = 'string'
|
||||
if(source.type === 'array' && source.items)
|
||||
schema.items = buildResponseSchema(source.items)
|
||||
if(source.type === 'object' && source.properties){
|
||||
schema.properties = {}
|
||||
Object.keys(source.properties || {}).forEach(k => {
|
||||
if(k.endsWith('[n]')){
|
||||
const nk = k.substr(0, k.length-3)
|
||||
for(let i=0; i<30; i++){
|
||||
schema.properties[nk+i] = buildResponseSchema(source.properties[k])
|
||||
function buildResponseSchema(source) {
|
||||
const schema = {
|
||||
type: source.type || "string",
|
||||
description: source.description || "",
|
||||
};
|
||||
if (schema.type === "boolean") schema.type = "integer";
|
||||
if (schema.type === "integer") schema.type = "int64";
|
||||
if (schema.type === "null") schema.type = "string";
|
||||
if (source.type === "array" && source.items)
|
||||
schema.items = buildResponseSchema(source.items);
|
||||
if (source.type === "object" && source.properties) {
|
||||
schema.properties = {};
|
||||
Object.keys(source.properties || {}).forEach((k) => {
|
||||
if (k.endsWith("[n]")) {
|
||||
const nk = k.substr(0, k.length - 3);
|
||||
for (let i = 0; i < 30; i++) {
|
||||
schema.properties[nk + i] = buildResponseSchema(
|
||||
source.properties[k]
|
||||
);
|
||||
}
|
||||
}else{
|
||||
schema.properties[k] = buildResponseSchema(source.properties[k])
|
||||
} else {
|
||||
schema.properties[k] = buildResponseSchema(
|
||||
source.properties[k]
|
||||
);
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
return schema
|
||||
return schema;
|
||||
}
|
||||
|
||||
function parseInfo(path, method, info){
|
||||
function parseInfo(path, method, info) {
|
||||
let id = generateOpId(method, path);
|
||||
id = mapping[id] || id
|
||||
const sourceProperties = (info.parameters && info.parameters.properties) ? Object.keys(info.parameters.properties).map(k => ({ name: k, ...info.parameters.properties[k] })) : []
|
||||
id = mapping[id] || id;
|
||||
const sourceProperties =
|
||||
info.parameters && info.parameters.properties
|
||||
? Object.keys(info.parameters.properties).map((k) => ({
|
||||
name: k,
|
||||
...info.parameters.properties[k],
|
||||
}))
|
||||
: [];
|
||||
|
||||
const properties = []
|
||||
|
||||
sourceProperties.forEach(p => {
|
||||
if(p.name.endsWith('[n]')){
|
||||
const nk = p.name.substr(0, p.name.length-3);
|
||||
for(let i=0; i<30; i++){
|
||||
properties.push({ ...JSON.parse(JSON.stringify(p)), name: nk+i })
|
||||
const properties = [];
|
||||
|
||||
sourceProperties.forEach((p) => {
|
||||
if (p.name.endsWith("[n]")) {
|
||||
const nk = p.name.substr(0, p.name.length - 3);
|
||||
for (let i = 0; i < 30; i++) {
|
||||
properties.push({
|
||||
...JSON.parse(JSON.stringify(p)),
|
||||
name: nk + i,
|
||||
});
|
||||
}
|
||||
}else{
|
||||
properties.push(p)
|
||||
} else {
|
||||
properties.push(p);
|
||||
}
|
||||
});
|
||||
|
||||
const requestName = capitalizeFirst(id) + 'Request'
|
||||
const responseName = capitalizeFirst(id) + 'Response'
|
||||
|
||||
const requestName = capitalizeFirst(id) + "Request";
|
||||
const responseName = capitalizeFirst(id) + "Response";
|
||||
|
||||
paths[path][method] = {
|
||||
operationId: id,
|
||||
summary: id,
|
||||
description: info.description || id,
|
||||
tags: [path.substr(1).split('/')[0]],
|
||||
parameters: properties.filter(p => path.includes('{'+p.name+'}')).map(p => ({ name: p.name, in: 'path', required: true, description: p.name, schema: { type: p.type } })),
|
||||
tags: [path.substr(1).split("/")[0]],
|
||||
parameters: properties
|
||||
.filter((p) => path.includes("{" + p.name + "}"))
|
||||
.map((p) => ({
|
||||
name: p.name,
|
||||
in: "path",
|
||||
required: true,
|
||||
description: p.name,
|
||||
schema: { type: p.type },
|
||||
})),
|
||||
responses: {
|
||||
'200': {
|
||||
$ref: '#/components/responses/'+responseName
|
||||
}
|
||||
}
|
||||
}
|
||||
200: {
|
||||
$ref: "#/components/responses/" + responseName,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
paths[path][method].tags.forEach(t => {
|
||||
if(!tags.includes(t))
|
||||
tags.push(t)
|
||||
})
|
||||
paths[path][method].tags.forEach((t) => {
|
||||
if (!tags.includes(t)) tags.push(t);
|
||||
});
|
||||
|
||||
responses[responseName] = {
|
||||
description: responseName,
|
||||
content: {
|
||||
'application/json': {
|
||||
"application/json": {
|
||||
schema: {
|
||||
type: 'object',
|
||||
type: "object",
|
||||
properties: {
|
||||
errors: {
|
||||
type: 'array',
|
||||
type: "array",
|
||||
items: {
|
||||
type: 'string'
|
||||
}
|
||||
type: "string",
|
||||
},
|
||||
},
|
||||
data: buildResponseSchema(info.returns)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
data: buildResponseSchema(info.returns),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
if(method === 'post' || method === 'put'){
|
||||
if (method === "post" || method === "put") {
|
||||
models[requestName] = {
|
||||
title: requestName,
|
||||
type: 'object',
|
||||
title: requestName,
|
||||
type: "object",
|
||||
properties: {},
|
||||
required: []
|
||||
}
|
||||
properties.filter(p => !path.includes('{'+p.name+'}')).forEach(p => {
|
||||
models[requestName].properties[p.name] = filterSchema(p)
|
||||
if(p.optional !== 1){
|
||||
models[requestName].required.push(p.name)
|
||||
}
|
||||
})
|
||||
if(models[requestName].required.length < 1)
|
||||
delete models[requestName].required
|
||||
required: [],
|
||||
};
|
||||
properties
|
||||
.filter((p) => !path.includes("{" + p.name + "}"))
|
||||
.forEach((p) => {
|
||||
models[requestName].properties[p.name] = filterSchema(p);
|
||||
if (p.optional !== 1) {
|
||||
models[requestName].required.push(p.name);
|
||||
}
|
||||
});
|
||||
if (models[requestName].required.length < 1)
|
||||
delete models[requestName].required;
|
||||
paths[path][method].requestBody = {
|
||||
content: {
|
||||
'application/json': {
|
||||
"application/json": {
|
||||
schema: {
|
||||
$ref: '#/components/schemas/'+requestName
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
properties.filter(p => !path.includes('{'+p.name+'}')).map(p => ({ name: p.name, in: 'query', required: p.optional !== 1, description: p.name, schema: { type: p.type } }))
|
||||
$ref: "#/components/schemas/" + requestName,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
} else {
|
||||
properties
|
||||
.filter((p) => !path.includes("{" + p.name + "}"))
|
||||
.map((p) => ({
|
||||
name: p.name,
|
||||
in: "query",
|
||||
required: p.optional !== 1,
|
||||
description: p.name,
|
||||
schema: { type: p.type },
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
function parsePath(source){
|
||||
if(source.info && Object.keys(source.info).length > 0){
|
||||
paths[source.path] = {}
|
||||
Object.keys(source.info).forEach(method => parseInfo(source.path, method.toLowerCase(), source.info[method]))
|
||||
function parsePath(source) {
|
||||
if (source.info && Object.keys(source.info).length > 0) {
|
||||
paths[source.path] = {};
|
||||
Object.keys(source.info).forEach((method) =>
|
||||
parseInfo(source.path, method.toLowerCase(), source.info[method])
|
||||
);
|
||||
}
|
||||
if(source.children)
|
||||
source.children.forEach(parsePath)
|
||||
if (source.children) source.children.forEach(parsePath);
|
||||
}
|
||||
|
||||
pveapi.forEach(parsePath)
|
||||
pveapi.forEach(parsePath);
|
||||
|
||||
const spec = {
|
||||
openapi: '3.0.0',
|
||||
openapi: "3.0.0",
|
||||
info: {
|
||||
title: 'ProxMox VE API',
|
||||
version: '2.0',
|
||||
description: 'ProxMox VE API',
|
||||
title: "ProxMox VE API",
|
||||
version: "2.0",
|
||||
description: "ProxMox VE API",
|
||||
contact: {
|
||||
name: 'LUMASERV Support Team',
|
||||
email: 'support@lumaserv.com'
|
||||
}
|
||||
name: "LUMASERV Support Team",
|
||||
email: "support@lumaserv.com",
|
||||
},
|
||||
},
|
||||
servers: [
|
||||
{
|
||||
description: 'local',
|
||||
url: 'https://cluster.local:8006/api2/json'
|
||||
}
|
||||
description: "local",
|
||||
url: "https://cluster.local:8006/api2/json",
|
||||
},
|
||||
],
|
||||
tags: tags.map(t => ({ name: t })),
|
||||
tags: tags.map((t) => ({ name: t })),
|
||||
paths: paths,
|
||||
components: {
|
||||
schemas: models,
|
||||
responses: responses
|
||||
}
|
||||
}
|
||||
responses: responses,
|
||||
},
|
||||
};
|
||||
|
||||
const fs = require('fs')
|
||||
const fs = require("fs");
|
||||
|
||||
fs.writeFileSync('../reference/spec.v2.yaml', yaml.safeDump(spec))
|
||||
fs.writeFileSync("../reference/spec.v2.yaml", yaml.safeDump(spec));
|
||||
|
|
|
|||
216
build/mapping.js
216
build/mapping.js
|
|
@ -1,108 +1,110 @@
|
|||
module.exports = {
|
||||
getNodesSingleQemu: 'getVMs',
|
||||
createNodesSingleQemu: 'createVM',
|
||||
getNodesSingleQemuSingle: 'getVM',
|
||||
deleteNodesSingleQemuSingle: 'deleteVM',
|
||||
getNodesSingleQemuSingleFirewall: 'getVMFirewall',
|
||||
getNodesSingleQemuSingleFirewallRules: 'getVMFirewallRules',
|
||||
createNodesSingleQemuSingleFirewallRules: 'createVMFirewallRule',
|
||||
getNodesSingleQemuSingleFirewallRulesSingle: 'getVMFirewallRule',
|
||||
updateNodesSingleQemuSingleFirewallRulesSingle: 'updateVMFirewallRule',
|
||||
deleteNodesSingleQemuSingleFirewallRulesSingle: 'deleteVMFirewallRule',
|
||||
getNodesSingleQemuSingleFirewallIpset: 'getVMFirewallIPSets',
|
||||
createNodesSingleQemuSingleFirewallIpset: 'createVMFirewallIPSet',
|
||||
getNodesSingleQemuSingleFirewallIpsetSingle: 'getVMFirewallIPSet',
|
||||
createNodesSingleQemuSingleFirewallIpsetSingle: 'addVMFirewallIPSetIP',
|
||||
deleteNodesSingleQemuSingleFirewallIpsetSingle: 'deleteVMFirewallIPSet',
|
||||
getNodesSingleQemuSingleFirewallIpsetSingleSingle: 'getVMFirewallIPSetIP',
|
||||
updateNodesSingleQemuSingleFirewallIpsetSingleSingle: 'updateVMFirewallIPSetIP',
|
||||
deleteNodesSingleQemuSingleFirewallIpsetSingleSingle: 'removeVMFirewallIPSetIP',
|
||||
getNodesSingleQemuSingleFirewallOptions: 'getVMFirewallOptions',
|
||||
updateNodesSingleQemuSingleFirewallOptions: 'updateVMFirewallOptions',
|
||||
getNodesSingleQemuSingleRrd: 'getVMRRD',
|
||||
getNodesSingleQemuSingleRrddata: 'getVMRRDData',
|
||||
getNodesSingleQemuSingleConfig: 'getVMConfig',
|
||||
createNodesSingleQemuSingleConfig: 'updateVMConfig',
|
||||
updateNodesSingleQemuSingleConfig: 'updateVMConfigSync',
|
||||
getNodesSingleQemuSinglePending: 'getVMConfigPending',
|
||||
updateNodesSingleQemuSingleUnlink: 'unlinkVMDiskImages',
|
||||
getNodesSingleQemuSingleStatus: 'getVMStatus',
|
||||
getNodesSingleQemuSingleStatusCurrent: 'getCurrentVMStatus',
|
||||
createNodesSingleQemuSingleStatusStart: 'startVM',
|
||||
createNodesSingleQemuSingleStatusStop: 'stopVM',
|
||||
createNodesSingleQemuSingleStatusReset: 'resetVM',
|
||||
createNodesSingleQemuSingleStatusShutdown: 'shutdownVM',
|
||||
createNodesSingleQemuSingleStatusReboot: 'rebootVM',
|
||||
createNodesSingleQemuSingleStatusSuspend: 'suspendVM',
|
||||
createNodesSingleQemuSingleStatusResume: 'resumeVM',
|
||||
createNodesSingleQemuSingleClone: 'cloneVM',
|
||||
getNodesSingleQemuSingleMigrate: 'migrateVM',
|
||||
getNodesSingleQemuSingleSnapshot: 'getVMSnapshots',
|
||||
createNodesSingleQemuSingleSnapshot: 'createVMSnapshot',
|
||||
getNodesSingleQemuSingleSnapshotSingle: 'getVMSnapshot',
|
||||
deleteNodesSingleQemuSingleSnapshotSingle: 'deleteVMSnapshot',
|
||||
getNodesSingleQemuSingleSnapshotSingleConfig: 'getVMSnapshotConfig',
|
||||
updateNodesSingleQemuSingleSnapshotSingleConfig: 'updateVMSnapshotConfig',
|
||||
createNodesSingleQemuSingleSnapshotSingleRollback: 'rollbackVMSnapshot',
|
||||
getNodesSingleFirewall: 'getNodeFirewall',
|
||||
getNodesSingleFirewallRules: 'getNodeFirewallRules',
|
||||
createNodesSingleFirewallRules: 'createNodeFirewallRule',
|
||||
getNodesSingleFirewallRulesSingle: 'getNodeFirewallRule',
|
||||
updateNodesSingleFirewallRulesSingle: 'updateNodeFirewallRule',
|
||||
deleteNodesSingleFirewallRulesSingle: 'deleteNodeFirewallRule',
|
||||
getNodesSingleFirewallOptions: 'getNodeFirewallOptions',
|
||||
updateNodesSingleFirewallOptions: 'updateNodeFirewallOptions',
|
||||
getNodesSingleSdn: 'getNodeSDN',
|
||||
getNodesSingleSdnZones: 'getNodeSDNZones',
|
||||
getNodesSingleSdnZonesSingle: 'getNodeSDNZone',
|
||||
getNodesSingleSdnZonesSingleContent: 'getNodeSDNZoneContent',
|
||||
getNodesSingleRrd: 'getNodeRRD',
|
||||
getNodesSingleRrddata: 'getNodeRRDData',
|
||||
createPools: 'createPool',
|
||||
getPoolsSingle: 'getPool',
|
||||
updatePoolsSingle: 'updatePool',
|
||||
deletePoolsSingle: 'deletePool',
|
||||
getNodesSingle: 'getNode',
|
||||
getClusterSdn: 'getClusterSDN',
|
||||
updateClusterSdn: 'updateClusterSDN',
|
||||
getClusterSdnVnets: 'getClusterSDNVnets',
|
||||
createClusterSdnVnets: 'createClusterSDNVnet',
|
||||
getClusterSdnVnetsSingle: 'getClusterSDNVnet',
|
||||
updateClusterSdnVnetsSingle: 'updateClusterSDNVnet',
|
||||
deleteClusterSdnVnetsSingle: 'deleteClusterSDNVnet',
|
||||
getClusterSdnZones: 'getClusterSDNZones',
|
||||
createClusterSdnZones: 'createClusterSDNZone',
|
||||
getClusterSdnZonesSingle: 'getClusterSDNZone',
|
||||
updateClusterSdnZonesSingle: 'updateClusterSDNZone',
|
||||
deleteClusterSdnZonesSingle: 'deleteClusterSDNZone',
|
||||
getClusterSdnControllers: 'getClusterSDNControllers',
|
||||
createClusterSdnControllers: 'createClusterSDNController',
|
||||
getClusterSdnControllersSingle: 'getClusterSDNController',
|
||||
updateClusterSdnControllersSingle: 'updateClusterSDNController',
|
||||
deleteClusterSdnControllersSingle: 'deleteClusterSDNController',
|
||||
createClusterFirewallGroups: 'createClusterFirewallGroup',
|
||||
getClusterFirewallGroupsSingle: 'getClusterFirewallGroupRules',
|
||||
createClusterFirewallGroupsSingle: 'addClusterFirewallGroupRule',
|
||||
deleteClusterFirewallGroupsSingle: 'deleteClusterFirewallGroup',
|
||||
getClusterFirewallGroupsSingleSingle: 'getClusterFirewallGroupRule',
|
||||
updateClusterFirewallGroupsSingleSingle: 'updateClusterFirewallGroupRule',
|
||||
deleteClusterFirewallGroupsSingleSingle: 'removeClusterFirewallGroupRule',
|
||||
createClusterFirewallRules: 'addClusterFirewallRule',
|
||||
getClusterFirewallRulesSingle: 'getClusterFirewallRule',
|
||||
updateClusterFirewallRulesSingle: 'updateClusterFirewallRule',
|
||||
deleteClusterFirewallRulesSingle: 'removeClusterFirewallRule',
|
||||
getClusterFirewallIpset: 'getClusterFirewallIPSets',
|
||||
createClusterFirewallIpset: 'createClusterFirewallIPSet',
|
||||
getClusterFirewallIpsetSingle: 'getClusterFirewallIPSet',
|
||||
createClusterFirewallIpsetSingle: 'addClusterFirewallIPSetIP',
|
||||
deleteClusterFirewallIpsetSingle: 'deleteClusterFirewallIPSet',
|
||||
getClusterFirewallIpsetSingleSingle: 'getClusterFirewallIPSetIP',
|
||||
updateClusterFirewallIpsetSingleSingle: 'updateClusterFirewallIPSetIP',
|
||||
deleteClusterFirewallIpsetSingleSingle: 'removeClusterFirewallIPSetIP',
|
||||
getNodesSingleTasks: 'getNodeTasks',
|
||||
getNodesSingleTasksSingle: 'getNodeTask',
|
||||
deleteNodesSingleTasksSingle: 'stopNodeTask',
|
||||
getNodesSingleTasksSingleLog: 'getNodeTaskLog',
|
||||
getNodesSingleTasksSingleStatus: 'getNodeTaskStatus',
|
||||
updateNodesSingleQemuSingleResize: 'resizeVMDisk'
|
||||
}
|
||||
getNodesSingleQemu: "getVMs",
|
||||
createNodesSingleQemu: "createVM",
|
||||
getNodesSingleQemuSingle: "getVM",
|
||||
deleteNodesSingleQemuSingle: "deleteVM",
|
||||
getNodesSingleQemuSingleFirewall: "getVMFirewall",
|
||||
getNodesSingleQemuSingleFirewallRules: "getVMFirewallRules",
|
||||
createNodesSingleQemuSingleFirewallRules: "createVMFirewallRule",
|
||||
getNodesSingleQemuSingleFirewallRulesSingle: "getVMFirewallRule",
|
||||
updateNodesSingleQemuSingleFirewallRulesSingle: "updateVMFirewallRule",
|
||||
deleteNodesSingleQemuSingleFirewallRulesSingle: "deleteVMFirewallRule",
|
||||
getNodesSingleQemuSingleFirewallIpset: "getVMFirewallIPSets",
|
||||
createNodesSingleQemuSingleFirewallIpset: "createVMFirewallIPSet",
|
||||
getNodesSingleQemuSingleFirewallIpsetSingle: "getVMFirewallIPSet",
|
||||
createNodesSingleQemuSingleFirewallIpsetSingle: "addVMFirewallIPSetIP",
|
||||
deleteNodesSingleQemuSingleFirewallIpsetSingle: "deleteVMFirewallIPSet",
|
||||
getNodesSingleQemuSingleFirewallIpsetSingleSingle: "getVMFirewallIPSetIP",
|
||||
updateNodesSingleQemuSingleFirewallIpsetSingleSingle:
|
||||
"updateVMFirewallIPSetIP",
|
||||
deleteNodesSingleQemuSingleFirewallIpsetSingleSingle:
|
||||
"removeVMFirewallIPSetIP",
|
||||
getNodesSingleQemuSingleFirewallOptions: "getVMFirewallOptions",
|
||||
updateNodesSingleQemuSingleFirewallOptions: "updateVMFirewallOptions",
|
||||
getNodesSingleQemuSingleRrd: "getVMRRD",
|
||||
getNodesSingleQemuSingleRrddata: "getVMRRDData",
|
||||
getNodesSingleQemuSingleConfig: "getVMConfig",
|
||||
createNodesSingleQemuSingleConfig: "updateVMConfig",
|
||||
updateNodesSingleQemuSingleConfig: "updateVMConfigSync",
|
||||
getNodesSingleQemuSinglePending: "getVMConfigPending",
|
||||
updateNodesSingleQemuSingleUnlink: "unlinkVMDiskImages",
|
||||
getNodesSingleQemuSingleStatus: "getVMStatus",
|
||||
getNodesSingleQemuSingleStatusCurrent: "getCurrentVMStatus",
|
||||
createNodesSingleQemuSingleStatusStart: "startVM",
|
||||
createNodesSingleQemuSingleStatusStop: "stopVM",
|
||||
createNodesSingleQemuSingleStatusReset: "resetVM",
|
||||
createNodesSingleQemuSingleStatusShutdown: "shutdownVM",
|
||||
createNodesSingleQemuSingleStatusReboot: "rebootVM",
|
||||
createNodesSingleQemuSingleStatusSuspend: "suspendVM",
|
||||
createNodesSingleQemuSingleStatusResume: "resumeVM",
|
||||
createNodesSingleQemuSingleClone: "cloneVM",
|
||||
getNodesSingleQemuSingleMigrate: "migrateVM",
|
||||
getNodesSingleQemuSingleSnapshot: "getVMSnapshots",
|
||||
createNodesSingleQemuSingleSnapshot: "createVMSnapshot",
|
||||
getNodesSingleQemuSingleSnapshotSingle: "getVMSnapshot",
|
||||
deleteNodesSingleQemuSingleSnapshotSingle: "deleteVMSnapshot",
|
||||
getNodesSingleQemuSingleSnapshotSingleConfig: "getVMSnapshotConfig",
|
||||
updateNodesSingleQemuSingleSnapshotSingleConfig: "updateVMSnapshotConfig",
|
||||
createNodesSingleQemuSingleSnapshotSingleRollback: "rollbackVMSnapshot",
|
||||
getNodesSingleFirewall: "getNodeFirewall",
|
||||
getNodesSingleFirewallRules: "getNodeFirewallRules",
|
||||
createNodesSingleFirewallRules: "createNodeFirewallRule",
|
||||
getNodesSingleFirewallRulesSingle: "getNodeFirewallRule",
|
||||
updateNodesSingleFirewallRulesSingle: "updateNodeFirewallRule",
|
||||
deleteNodesSingleFirewallRulesSingle: "deleteNodeFirewallRule",
|
||||
getNodesSingleFirewallOptions: "getNodeFirewallOptions",
|
||||
updateNodesSingleFirewallOptions: "updateNodeFirewallOptions",
|
||||
getNodesSingleSdn: "getNodeSDN",
|
||||
getNodesSingleSdnZones: "getNodeSDNZones",
|
||||
getNodesSingleSdnZonesSingle: "getNodeSDNZone",
|
||||
getNodesSingleSdnZonesSingleContent: "getNodeSDNZoneContent",
|
||||
getNodesSingleRrd: "getNodeRRD",
|
||||
getNodesSingleRrddata: "getNodeRRDData",
|
||||
createPools: "createPool",
|
||||
getPoolsSingle: "getPool",
|
||||
updatePoolsSingle: "updatePool",
|
||||
deletePoolsSingle: "deletePool",
|
||||
getNodesSingle: "getNode",
|
||||
getClusterSdn: "getClusterSDN",
|
||||
updateClusterSdn: "updateClusterSDN",
|
||||
getClusterSdnVnets: "getClusterSDNVnets",
|
||||
createClusterSdnVnets: "createClusterSDNVnet",
|
||||
getClusterSdnVnetsSingle: "getClusterSDNVnet",
|
||||
updateClusterSdnVnetsSingle: "updateClusterSDNVnet",
|
||||
deleteClusterSdnVnetsSingle: "deleteClusterSDNVnet",
|
||||
getClusterSdnZones: "getClusterSDNZones",
|
||||
createClusterSdnZones: "createClusterSDNZone",
|
||||
getClusterSdnZonesSingle: "getClusterSDNZone",
|
||||
updateClusterSdnZonesSingle: "updateClusterSDNZone",
|
||||
deleteClusterSdnZonesSingle: "deleteClusterSDNZone",
|
||||
getClusterSdnControllers: "getClusterSDNControllers",
|
||||
createClusterSdnControllers: "createClusterSDNController",
|
||||
getClusterSdnControllersSingle: "getClusterSDNController",
|
||||
updateClusterSdnControllersSingle: "updateClusterSDNController",
|
||||
deleteClusterSdnControllersSingle: "deleteClusterSDNController",
|
||||
createClusterFirewallGroups: "createClusterFirewallGroup",
|
||||
getClusterFirewallGroupsSingle: "getClusterFirewallGroupRules",
|
||||
createClusterFirewallGroupsSingle: "addClusterFirewallGroupRule",
|
||||
deleteClusterFirewallGroupsSingle: "deleteClusterFirewallGroup",
|
||||
getClusterFirewallGroupsSingleSingle: "getClusterFirewallGroupRule",
|
||||
updateClusterFirewallGroupsSingleSingle: "updateClusterFirewallGroupRule",
|
||||
deleteClusterFirewallGroupsSingleSingle: "removeClusterFirewallGroupRule",
|
||||
createClusterFirewallRules: "addClusterFirewallRule",
|
||||
getClusterFirewallRulesSingle: "getClusterFirewallRule",
|
||||
updateClusterFirewallRulesSingle: "updateClusterFirewallRule",
|
||||
deleteClusterFirewallRulesSingle: "removeClusterFirewallRule",
|
||||
getClusterFirewallIpset: "getClusterFirewallIPSets",
|
||||
createClusterFirewallIpset: "createClusterFirewallIPSet",
|
||||
getClusterFirewallIpsetSingle: "getClusterFirewallIPSet",
|
||||
createClusterFirewallIpsetSingle: "addClusterFirewallIPSetIP",
|
||||
deleteClusterFirewallIpsetSingle: "deleteClusterFirewallIPSet",
|
||||
getClusterFirewallIpsetSingleSingle: "getClusterFirewallIPSetIP",
|
||||
updateClusterFirewallIpsetSingleSingle: "updateClusterFirewallIPSetIP",
|
||||
deleteClusterFirewallIpsetSingleSingle: "removeClusterFirewallIPSetIP",
|
||||
getNodesSingleTasks: "getNodeTasks",
|
||||
getNodesSingleTasksSingle: "getNodeTask",
|
||||
deleteNodesSingleTasksSingle: "stopNodeTask",
|
||||
getNodesSingleTasksSingleLog: "getNodeTaskLog",
|
||||
getNodesSingleTasksSingleStatus: "getNodeTaskStatus",
|
||||
updateNodesSingleQemuSingleResize: "resizeVMDisk",
|
||||
};
|
||||
|
|
|
|||
45
build/pnpm-lock.yaml
generated
Normal file
45
build/pnpm-lock.yaml
generated
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
lockfileVersion: '9.0'
|
||||
|
||||
settings:
|
||||
autoInstallPeers: true
|
||||
excludeLinksFromLockfile: false
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
dependencies:
|
||||
js-yaml:
|
||||
specifier: ^3.14.1
|
||||
version: 3.14.2
|
||||
|
||||
packages:
|
||||
|
||||
argparse@1.0.10:
|
||||
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||
|
||||
esprima@4.0.1:
|
||||
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
|
||||
js-yaml@3.14.2:
|
||||
resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
|
||||
hasBin: true
|
||||
|
||||
sprintf-js@1.0.3:
|
||||
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
||||
|
||||
snapshots:
|
||||
|
||||
argparse@1.0.10:
|
||||
dependencies:
|
||||
sprintf-js: 1.0.3
|
||||
|
||||
esprima@4.0.1: {}
|
||||
|
||||
js-yaml@3.14.2:
|
||||
dependencies:
|
||||
argparse: 1.0.10
|
||||
esprima: 4.0.1
|
||||
|
||||
sprintf-js@1.0.3: {}
|
||||
115125
build/source.js
115125
build/source.js
File diff suppressed because it is too large
Load diff
69053
reference/spec.v2.yaml
69053
reference/spec.v2.yaml
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue