Home

Awesome

Build Status Release npm npm License semantic-release

IBM Cloud VPC Node.js SDK

Node.js client library to interact with various VPC APIs.

This SDK uses Semantic Versioning, and as such there may be backward-incompatible changes for any new 0.y.z version.

Table of Contents

<!-- The TOC below is generated using the `markdown-toc` node package. https://github.com/jonschlinkert/markdown-toc You should regenerate the TOC after making changes to this file. npx markdown-toc -i README.md --> <!-- toc --> <!-- tocstop --> <!-- --------------------------------------------------------------- -->

Overview

The IBM Cloud VPC Node.js SDK allows developers to programmatically interact with the following IBM Cloud services:

Service NameImport Path
VPCibm-vpc/vpc/v1

Prerequisites

Installation

npm install ibm-vpc

Using the SDK

For general SDK usage information, see the IBM Cloud SDK Common README

Example set up for VPC

const { IamAuthenticator } = require("ibm-vpc/auth");
const vpcV1 = require("ibm-vpc/vpc/v1");
const options = {
    authenticator: new IamAuthenticator({
        apikey: process.env.IC_API_KEY, //IBMCLOUD_API_KEY
    }),
    serviceUrl: "https://us-south.iaas.cloud.ibm.com/v1",
};
const service = vpcV1.newInstance(options);
// Retrieve the list of regions for your account.
const response = service.listRegions({});
response.then(function(result) {
  result.result.regions.forEach(region => {
    regionserviceUrl = region.endpoint+"/v1";
    const regionSpecificOptions = {
      authenticator: new IamAuthenticator({
          apikey: process.env.IC_API_KEY,
      }),
      serviceUrl: regionserviceUrl,
  };
  const regionSpecificService = vpcV1.newInstance(regionSpecificOptions);  
  const instanceprofilesresponse = regionSpecificService.listInstanceProfiles({});
  instanceprofilesresponse.then(function(profileCollection) {
    console.log(profileCollection.result.profiles[0].href)
  })
})
})
// Retrieve the list of vpcs for your account.
try {
  const responses = service.listVpcs();
  responses.then(function(result) {
    result.result.vpcs.forEach(vpc => {
      console.log("vpc-id"+" "+vpc.id);
    });
  })
} catch (err) {
  console.warn(err);
}
// Retrieve the list of subnets for your account.
try {
  const responses = service.listSubnets();
  responses.then(function(result) {
    result.result.subnets.forEach(subnet => {
      console.log("subnet-id"+" "+subnet.id);
    });
  })
} catch (err) {
  console.warn(err);
}

Questions

If you have difficulties using this SDK or you have a question about the IBM Cloud services, ask a question at Stack Overflow.

Issues

If you encounter an issue with the SDK, you are welcome to submit a bug report. Before you create a new issue, search for similar issues. It's possible someone has already reported the problem.

Open source @ IBM

Find more open source projects on the IBM GitHub Page

Contributing

See CONTRIBUTING.

License

This project is released under the Apache 2.0 license. The license's full text can be found in LICENSE.