diff --git a/js/v4api_sdk/.gitignore b/js/v4api_sdk/.gitignore index 1687d79..9e491bf 100644 --- a/js/v4api_sdk/.gitignore +++ b/js/v4api_sdk/.gitignore @@ -1,2 +1,5 @@ node_modules/ config.json +.eslintrc.json +package-lock.json +package.json diff --git a/js/v4api_sdk/README.md b/js/v4api_sdk/README.md index afc6a5a..4f3dd35 100644 --- a/js/v4api_sdk/README.md +++ b/js/v4api_sdk/README.md @@ -2,17 +2,17 @@ Code sample to demonstrate use of the new Nutanix v4 APIs via JS SDK. -This example demonstrates use of the Nutanix `vmm` JS API library +This example demonstrates use of the Nutanix `clustermgmt` JS API library ## Usage Example instructions are for a Linux or Mac OS X environment. - Install Node.js as per the [official documentation](https://nodejs.org/en/download/) -- Add the [Nutanix vmm JS Client](https://www.npmjs.com/package/@nutanix-api/vmm-js-client) as a project dependency; for this demo we are using the `vmm` SDK as it provides access to Images APIs: +- Add the [Nutanix clustermgmt JS Client](https://www.npmjs.com/package/@nutanix-api/clustermgmt-js-client) as a project dependency; for this demo we are using the `clustermgmt` SDK as it provides access to Cluster APIs: ``` - npm install @nutanix-api/vmm-js-client + npm install @nutanix-api/clustermgmt-js-client ``` - Optional but useful: Install [ESLint](https://eslint.org/) @@ -28,10 +28,9 @@ Example instructions are for a Linux or Mac OS X environment. - Run the script: ``` - node list_images_sdk.js + node list_clusters_sdk.js ``` ## Screenshot ![Example script execution](./screenshot.png "Example script execution") - diff --git a/js/v4api_sdk/list_clusters_sdk.js b/js/v4api_sdk/list_clusters_sdk.js new file mode 100644 index 0000000..cc4add0 --- /dev/null +++ b/js/v4api_sdk/list_clusters_sdk.js @@ -0,0 +1,64 @@ +/* + * list_clusters_sdk.js + * + * Code sample showing basic usage of the Nutanix v4 API SDK for JS + * + * This demo read configuration from config.json, connects to Prism Central, + * authenticates then returns a list of registered clusters. The list is formatted to show + * cluster names and their extId + * + * Requirements: + * + * Prism Central pc.2023.3 or later +*/ + +const sdk = require("@nutanix-api/clustermgmt-js-client/dist/lib/index"); +let client = new sdk.ApiClient(); + +client.addDefaultHeader("Accept-Encoding","gzip, deflate, br"); + +const fs = require('fs'); + +// load the configuration from on-disk config.json +fs.readFile('./config.json', 'utf8', (err, data) => { + if (err) { + console.log(`Unable to load config from ./config.json: ${err}`); + } else { + // parse JSON string to JSON object + const config = JSON.parse(data); + + // setup the connection configuration + // for this demo, only Prism Central IP, port, username, password and debug mode are read from on-disk configuration + // Prism Central IPv4/IPv6 address or FQDN + client.host = config.pc_ip; + // HTTP port for connection + client.port = config.pc_port; + // connection credentials + client.username = config.username; + client.password = config.password; + // don't verify SSL certificates; not recommended in production + client.verifySsl = false; + // show extra debug info during demo + client.debug = config.debug; + client.cache = false; + + console.log(`Prism Central IP or FQDN: ${client.host}`); + console.log(`Username: ${client.username}`); + + let clientApi = new sdk.ClusterApi(client); + + // setup request options + var entityListOptions = new Object(); + entityListOptions.page = 0; + entityListOptions.limit = 20; + entityListOptions.filter = ''; + entityListOptions.orderBy = ''; + + clientApi.getClusters(entityListOptions).then(({ data, response }) => { + console.log(`API returned the following status code: ${response.status}`); + data.getData().forEach(element => console.log('Cluster found with name "' + element.name + '"')) + }).catch((err) => { + console.log(`Error is ${err}`); + }) + } +}) diff --git a/js/v4api_sdk/list_images_sdk.js b/js/v4api_sdk/list_images_sdk.js deleted file mode 100644 index 2db39bc..0000000 --- a/js/v4api_sdk/list_images_sdk.js +++ /dev/null @@ -1,55 +0,0 @@ -// list_images_sdk.js -// -// Code sample showing basic usage of the Nutanix v4 API SDK for JS -// -// This demo read configuration from config.json, connects to Prism Central, -// authenticates then returns a list of images. The list is formatted to show -// image names and their size in bytes -// -// Requirements: -// -// - Prism Central pc.2022.6 or later - -const sdk = require('@nutanix-api/vmm-js-client/dist/lib/index') -const client = new sdk.ApiClient() - -const fs = require('fs') - -// load the configuration from on-disk config.json -fs.readFile('./config.json', 'utf8', (err, data) => { - if (err) { - console.log(`Unable to load config from ./config.json: ${err}`) - } else { - // parse JSON string to JSON object - const config = JSON.parse(data) - - // setup the connection configuration - // for this demo, only Prism Central IP, username, password and debug mode are read from on-disk configuration - client.host = config.pc_ip // IPv4/IPv6 address or FQDN of the cluster - client.port = 9440 // Port to which to connect to - client.username = config.username // UserName to connect to the cluster - client.password = config.password // Password to connect to the cluster - client.maxRetryAttempts = 1 // Max retry attempts while reconnecting on a loss of connection - client.retryInterval = 1000 // Interval in ms to use during retry attempts - client.verifySsl = false - client.debug = config.debug - - console.log('Prism Central IP or FQDN: ' + client.host) - console.log('Username: ' + client.username) - - const imagesApi = new sdk.ImagesApi(client) - - const imagesListOptions = {} - imagesListOptions.$page = 0 - imagesListOptions.$limit = 20 - imagesListOptions.$filter = '' - imagesListOptions.$orderBy = '' - - imagesApi.getImagesList(imagesListOptions).then(({ data, response }) => { - console.log(data.resultsTotal + ' images found') - data.getData().forEach(element => console.log('Image found with name "' + element.name + '", size bytes ' + element.sizeBytes)) - }).catch((err) => { - console.log(`Error is ${err}`) - }) - } -}) diff --git a/js/v4api_sdk/package-lock.json b/js/v4api_sdk/package-lock.json index 97100ec..796c13b 100644 --- a/js/v4api_sdk/package-lock.json +++ b/js/v4api_sdk/package-lock.json @@ -5,6 +5,7 @@ "packages": { "": { "dependencies": { + "@nutanix-api/clustermgmt-js-client": "^4.0.1-beta.1", "@nutanix-api/vmm-js-client": "^4.0.1-alpha.1", "json-loader": "^0.5.7" }, @@ -165,6 +166,124 @@ "node": ">= 8" } }, + "node_modules/@nutanix-api/clustermgmt-js-client": { + "version": "4.0.1-beta.1", + "resolved": "https://registry.npmjs.org/@nutanix-api/clustermgmt-js-client/-/clustermgmt-js-client-4.0.1-beta.1.tgz", + "integrity": "sha512-Y7qWcnlnXnBmsxuPaNW0QsJHMn4GvwXoyebAhU8RvfbfSpJnrObLiaL/d2xpmPrhf7Enh/UeykMHc74YtQR6kQ==", + "dependencies": { + "superagent": "7.1.5", + "superagent-retry-delay": "^2.6.2", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@nutanix-api/clustermgmt-js-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@nutanix-api/clustermgmt-js-client/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@nutanix-api/clustermgmt-js-client/node_modules/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/@nutanix-api/clustermgmt-js-client/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@nutanix-api/clustermgmt-js-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@nutanix-api/clustermgmt-js-client/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@nutanix-api/clustermgmt-js-client/node_modules/superagent": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.5.tgz", + "integrity": "sha512-HQYyGuDRFGmZ6GNC4hq2f37KnsY9Lr0/R1marNZTgMweVDQLTLJJ6DGQ9Tj/xVVs5HEnop9EMmTbywb5P30aqw==", + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "^2.5.0", + "qs": "^6.10.3", + "readable-stream": "^3.6.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/@nutanix-api/clustermgmt-js-client/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@nutanix-api/vmm-js-client": { "version": "4.0.1-alpha.1", "resolved": "https://registry.npmjs.org/@nutanix-api/vmm-js-client/-/vmm-js-client-4.0.1-alpha.1.tgz", @@ -582,6 +701,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -768,6 +892,15 @@ "node": ">=0.4.0" } }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1351,6 +1484,11 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -1648,6 +1786,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "engines": { + "node": ">=8" + } + }, "node_modules/https": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", @@ -2006,7 +2152,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -2159,7 +2304,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -2483,7 +2627,6 @@ "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -2827,14 +2970,12 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yocto-queue": { "version": "0.1.0", @@ -2956,6 +3097,90 @@ "fastq": "^1.6.0" } }, + "@nutanix-api/clustermgmt-js-client": { + "version": "4.0.1-beta.1", + "resolved": "https://registry.npmjs.org/@nutanix-api/clustermgmt-js-client/-/clustermgmt-js-client-4.0.1-beta.1.tgz", + "integrity": "sha512-Y7qWcnlnXnBmsxuPaNW0QsJHMn4GvwXoyebAhU8RvfbfSpJnrObLiaL/d2xpmPrhf7Enh/UeykMHc74YtQR6kQ==", + "requires": { + "superagent": "7.1.5", + "superagent-retry-delay": "^2.6.2", + "uuid": "^9.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "requires": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "superagent": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.5.tgz", + "integrity": "sha512-HQYyGuDRFGmZ6GNC4hq2f37KnsY9Lr0/R1marNZTgMweVDQLTLJJ6DGQ9Tj/xVVs5HEnop9EMmTbywb5P30aqw==", + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "^2.5.0", + "qs": "^6.10.3", + "readable-stream": "^3.6.0", + "semver": "^7.3.7" + } + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + } + } + }, "@nutanix-api/vmm-js-client": { "version": "4.0.1-alpha.1", "resolved": "https://registry.npmjs.org/@nutanix-api/vmm-js-client/-/vmm-js-client-4.0.1-alpha.1.tgz", @@ -3221,6 +3446,11 @@ "es-shim-unscopables": "^1.0.0" } }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3374,6 +3604,15 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, + "dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -3800,6 +4039,11 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -4012,6 +4256,11 @@ "has-symbols": "^1.0.2" } }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==" + }, "https": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", @@ -4271,7 +4520,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -4379,7 +4627,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "requires": { "wrappy": "1" } @@ -4589,7 +4836,6 @@ "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -4839,14 +5085,12 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yocto-queue": { "version": "0.1.0", diff --git a/js/v4api_sdk/package.json b/js/v4api_sdk/package.json index 0acca66..44e071d 100644 --- a/js/v4api_sdk/package.json +++ b/js/v4api_sdk/package.json @@ -1,5 +1,6 @@ { "dependencies": { + "@nutanix-api/clustermgmt-js-client": "^4.0.1-beta.1", "@nutanix-api/vmm-js-client": "^4.0.1-alpha.1", "json-loader": "^0.5.7" }, diff --git a/js/v4api_sdk/screenshot.png b/js/v4api_sdk/screenshot.png index 0c4799e..2a1c3de 100644 Binary files a/js/v4api_sdk/screenshot.png and b/js/v4api_sdk/screenshot.png differ