Skip to content

IBM/vpc-node-sdk

Repository files navigation

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

Overview

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

Service Name Import Path
VPC ibm-vpc/vpc/v1

Prerequisites

  • An IBM Cloud account
  • Node.js version 18 or newer

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.