diff --git a/README.md b/README.md index 34788296..2b8f9d58 100644 --- a/README.md +++ b/README.md @@ -19,18 +19,18 @@ Table of Content -- [Introduction](#introduction) -- [Supported Service Providers](#-supported-service-providers) -- [Getting Started](#getting-started) - - [NodeCloud Plugins](#nodecloud-plugins) - - [Example](#example) -- [Overriding Providers](#overriding-providers) -- [Service Types](#-service-types) -- [Development setup](#-development-setup) -- [Important Notes for Developers](#important-notes-for-developers-) -- [Test Changes](#test-changes) -- [NodeCloud Code Generation tool](#nodecloud-code-generation-tool) -- [License](#-license) +- [Introduction](#introduction) +- [Supported Service Providers](#-supported-service-providers) +- [Getting Started](#getting-started) + - [NodeCloud Plugins](#nodecloud-plugins) + - [Example](#example) +- [Overriding Providers](#overriding-providers) +- [Service Types](#-service-types) +- [Development setup](#-development-setup) +- [Important Notes for Developers](#important-notes-for-developers-) +- [Test Changes](#test-changes) +- [NodeCloud Code Generation tool](#nodecloud-code-generation-tool) +- [License](#-license) # Introduction @@ -38,18 +38,20 @@ Table of Content NodeCloud will be useful to you if: -- you work on a project which uses multiple cloud providers -- you are looking for an abstract cloud API which can switch between cloud providers with fewer code changes -- you are an open-source enthusiast who is into cloud engineering or code generation -- you want to improve your skills in NodeJS, Typescript and cloud service providers +- you work on a project which uses multiple cloud providers +- you are looking for an abstract cloud API which can switch between cloud providers with fewer code changes +- you are an open-source enthusiast who is into cloud engineering or code generation +- you want to improve your skills in NodeJS, Typescript and cloud service providers ## πŸ“˜ Supported Service Providers -- Amazon Web Services (AWS) -- Azure -- Google Cloud Platform (GCP) -- DigitalOcean -- AliCloud +- Amazon Web Services (AWS) +- Azure +- Google Cloud Platform (GCP) +- DigitalOcean +- AliCloud +- Oracle +- Linode _πŸ“’ if your required cloud provider plugin is not listed here, we'd love your help to add it :)_ @@ -71,13 +73,15 @@ Once `@nodecloud/common` is installed, you need to install the plugins to intera ### NodeCloud Plugins -| Plugin | Installation | -| -------------------- | --------------------------------------------------------------------- | -| AWS plugin | `yarn add @nodecloud/aws-plugin` or `npm i @nodecloud/aws-plugin` | -| Azure plugin | `yarn add @nodecloud/gcp-plugin` or `npm i @nodecloud/gcp-plugin` | -| Google Cloud plugin | `yarn add @nodecloud/azure-plugin` or `npm i @nodecloud/azure-plugin` | | -| Digital Ocean plugin | `yarn add @nodecloud/do-plugin` or `npm i @nodecloud/do-plugin` | -| Alibaba plugin | `yarn add nodecloud-ali-plugin` or `npm i nodecloud-ali-plugin` | +| Plugin | Installation | +| -------------------- | ----------------------------------------------------------------------- | +| AWS plugin | `yarn add @nodecloud/aws-plugin` or `npm i @nodecloud/aws-plugin` | +| Azure plugin | `yarn add @nodecloud/gcp-plugin` or `npm i @nodecloud/gcp-plugin` | +| Google Cloud plugin | `yarn add @nodecloud/azure-plugin` or `npm i @nodecloud/azure-plugin` | | +| Digital Ocean plugin | `yarn add @nodecloud/do-plugin` or `npm i @nodecloud/do-plugin` | +| Alibaba plugin | `yarn add nodecloud-ali-plugin` or `npm i nodecloud-ali-plugin` | +| Oracle plugin | `yarn add @nodecloud-oracle-plugin` or `npm i @nodecloud-oracle-plugin` | +| Linode plugin | `yarn add @nodecloud-linode-plugin` or `npm i @nodecloud-linode-plugin` | **3️⃣ Create the NodeCloud config file** @@ -95,37 +99,49 @@ This config file can contain an array of objects for all providers and all will ### Example ```js -const nodeCloudAwsPlugin = require("@nodecloud/aws-plugin"); -const nodeCloudGcpPlugin = require("@nodecloud/gcp-plugin"); -const nodeCloudAzurePlugin = require("@nodecloud/azure-plugin"); -const nodeCloudDoPlugin = require("@nodecloud/do-plugin"); +const nodeCloudAwsPlugin = require('@nodecloud/aws-plugin'); +const nodeCloudGcpPlugin = require('@nodecloud/gcp-plugin'); +const nodeCloudAzurePlugin = require('@nodecloud/azure-plugin'); +const nodeCloudDoPlugin = require('@nodecloud/do-plugin'); +const nodeCloudOraclePlugin = require('@nodecloud/oracle-plugin'); +const nodeCloudLinodePlugin = require('@nodecloud/linode-plugin'); const providers = [ - { - name: "aws", - tag: "aws", - plugin: nodeCloudAwsPlugin, - configPath: "C:\\Users\\Rajitha\\opensource\\aws_cred.json" - }, - { - name: "google", - tag: "google", - plugin: nodeCloudGcpPlugin, - configPath: { - projectId: "astral-hold-276807", - keyFilename: "C:\\Users\\Rajitha\\opensource\\gcp_cred.json" - } - }, - { - name: "azure", - tag: "azure", - plugin: nodeCloudAzurePlugin - }, - { - name: "digitalocean", - tag: "do", - plugin: nodeCloudDoPlugin - } + { + name: 'aws', + tag: 'aws', + plugin: nodeCloudAwsPlugin, + configPath: 'C:\\Users\\Rajitha\\opensource\\aws_cred.json', + }, + { + name: 'google', + tag: 'google', + plugin: nodeCloudGcpPlugin, + configPath: { + projectId: 'astral-hold-276807', + keyFilename: 'C:\\Users\\Rajitha\\opensource\\gcp_cred.json', + }, + }, + { + name: 'azure', + tag: 'azure', + plugin: nodeCloudAzurePlugin, + }, + { + name: 'digitalocean', + tag: 'do', + plugin: nodeCloudDoPlugin, + }, + { + name: 'oracle', + tag: 'oracle', + plugin: nodeCloudOraclePlugin, + }, + { + name: 'linode', + tag: 'linode', + plugin: nodeCloudLinodePlugin, + }, ]; module.exports = providers; ``` @@ -137,52 +153,52 @@ Congratulations! You just configured NodeCloud in your project. Let's start with The below code is an example of usage in AWS. ```js -const nc = require("@nodecloud/common"); // NodeCloud common module +const nc = require('@nodecloud/common'); // NodeCloud common module const optionsProvider = { - overrideProviders: false + overrideProviders: false, }; const ncProviders = nc.getProviders(optionsProvider); const options = { - apiVersion: "2017-11-01" + apiVersion: '2017-11-01', }; const computeModule = ncProviders.aws.compute(options); function launchInstance() { - const instanceParams = { - ImageId: "ami-07ebfd5b3428b6f4d", // Image of Ubuntu Server 18.04 LTS - InstanceType: "t2.micro", - KeyName: "nodeCloud", // key name of Key pair - MinCount: 1, - MaxCount: 1 - }; - - // create AWS EC2 instance - computeModule - .create(instanceParams) - .then(res => { - console.log(`All done ! ${res}`); - }) - .catch(err => { - console.log(`Oops something happened ${err}`); - }); + const instanceParams = { + ImageId: 'ami-07ebfd5b3428b6f4d', // Image of Ubuntu Server 18.04 LTS + InstanceType: 't2.micro', + KeyName: 'nodeCloud', // key name of Key pair + MinCount: 1, + MaxCount: 1, + }; + + // create AWS EC2 instance + computeModule + .create(instanceParams) + .then(res => { + console.log(`All done ! ${res}`); + }) + .catch(err => { + console.log(`Oops something happened ${err}`); + }); } function stopInstance() { - const params = { - InstanceIds: ["i-0928af5c626f85da9"], - DryRun: false - }; - - // stop AWS EC2 instance - computeModule - .stop(params) - .then(res => { - console.log(res); - }) - .catch(err => { - console.log(err); - }); + const params = { + InstanceIds: ['i-0928af5c626f85da9'], + DryRun: false, + }; + + // stop AWS EC2 instance + computeModule + .stop(params) + .then(res => { + console.log(res); + }) + .catch(err => { + console.log(err); + }); } ``` @@ -191,32 +207,35 @@ function stopInstance() { NodeCloud officially supports AWS, GCP, Azure, DigitalOcean and AliCloud. If you want to use a community-driven plugin override the providers' list as follows. ```js -const nodeCloud = require("nodecloud"); +const nodeCloud = require('nodecloud'); const options = { - overrideProviders: true + overrideProviders: true, }; const ncProviders = nodeCloud.getProviders(options); ``` ## πŸ“Ÿ Service Types -| Service Category | Service | AWS | GCP | Azure | DigitalOcean | AliCloud | -| ----------------------- | ----------------------------------- | :-----------------------------------: | :-------------------------------: | :---------------------------------------------------------------------: | :---------------------------------------: | :---------------------------------------------------: | -| Compute | IaaS | EC2 | Compute Engine | Virtual Machine | Droplets | ECS | -| | Faas | AWS Lambda\* | Cloud Functions\* | Azure Functions\* | - | Function Compute\* | -| | Containers | ECS, EKS | Google Kubernetes Engine | AKS, Azure Service Fabric\* | DO Kubernetes | Container Service*, Container Service for Kubernetes* | -| | Containers (without infrastructure) | AWS Fargate\* | Cloud Run\* | - | - | ECI\* | -| | Paas | AWS Elastic Beanstalk | App Engine\* | App Service | - | Simple Application Server\* | -| Storage | Object Storage | S3 | Cloud Storage | Azure Blob Storage | Spaces\* | Bucket (OSS) | -| | Block Storage | EBS | Persistent Disks | Disk Storage | Volumes | NAS\* | -| Networking | Load Balancer | ELB | Cloud Load Balancing\* | Azure Load Balancer | DO Load Balancer | SLB | -| | Peering/Dedicated Interconnect | Direct Connect | Cloud Interconnect\* | ExpressRoute\* | - | Express Connect\* | -| | DNS | Route53 | Google Domains, Cloud DNS | Azure DNS | DO DNS | Alibaba Cloud DNS\* | -| Databases | RDBMS | RDS, Amazon Aurora*, Amazon Redshift* | Cloud SQL\*, Cloud Spanner | SQL Database, Azure Database for MySQL*, Azure Database for PostgreSQL* | Managed Databases(PostgreSQL\* and MySQL) | ApsaraDB (MySQL, MariaDB TX, SQL Server, PostgreSQL) | -| | NoSQL: key-value | DynamoDB | Cloud Firestore, Cloud Bigtable\* | Table Storage | Managed Databases(Redis)\* | ApsaraDB for Redis\* | -| | NoSQL: indexed | Amazon SimpleDB\* | Cloud Firestore | Cosmos DB | - | ApsaraDB for MongoDB\* | -| Security/ Authorization | Identity Access Management | AWS IAM | Cloud IAM\* | Azure Active Directory*, Azure Role Based Access Control* | - | Resource Access Management\* | -| Management | Key Management | AWS-KMS | - | - | Do-Keys | - | +| Service Category | Service | AWS | GCP | Azure | DigitalOcean | AliCloud | Linode | Oracle | +| ----------------------- | ----------------------------------- | :-----------------------------------: | :-------------------------------: | :---------------------------------------------------------------------: | :---------------------------------------: | :---------------------------------------------------: | :---------------------------: | :-------------------: | +| Compute | IaaS | EC2 | Compute Engine | Virtual Machine | Droplets | ECS | Linodes | OCI ContainerInstance | +| | Faas | AWS Lambda\* | Cloud Functions\* | Azure Functions\* | - | Function Compute\* | - | - | +| | Containers | ECS, EKS | Google Kubernetes Engine | AKS, Azure Service Fabric\* | DO Kubernetes | Container Service*, Container Service for Kubernetes* | LKS | OCI ContainerEngine | +| | Containers (without infrastructure) | AWS Fargate\* | Cloud Run\* | - | - | ECI\* | - | - | +| | Paas | AWS Elastic Beanstalk | App Engine\* | App Service | - | Simple Application Server\* | - | - | +| Storage | Object Storage | S3 | Cloud Storage | Azure Blob Storage | Spaces\* | Bucket (OSS) | Object Storage | OCI Object Storage | +| | Block Storage | EBS | Persistent Disks | Disk Storage | Volumes | NAS\* | - | OCI Volume | +| Networking | Load Balancer | ELB | Cloud Load Balancing\* | Azure Load Balancer | DO Load Balancer | SLB | Node Balancer | OCI LoadBalancer | +| | Peering/Dedicated Interconnect | Direct Connect | Cloud Interconnect\* | ExpressRoute\* | - | Express Connect\* | - | - | +| | DNS | Route53 | Google Domains, Cloud DNS | Azure DNS | DO DNS | Alibaba Cloud DNS\* | Domains | OCI DNS | +| Databases | RDBMS | RDS, Amazon Aurora*, Amazon Redshift* | Cloud SQL\*, Cloud Spanner | SQL Database, Azure Database for MySQL*, Azure Database for PostgreSQL* | Managed Databases(PostgreSQL\* and MySQL) | ApsaraDB (MySQL, MariaDB TX, SQL Server, PostgreSQL) | Database(Postgres and Myssql) | OCI Mysql | +| | NoSQL: key-value | DynamoDB | Cloud Firestore, Cloud Bigtable\* | Table Storage | Managed Databases(Redis)\* | ApsaraDB for Redis\* | - | OCI MongoDb | +| | NoSQL: indexed | Amazon SimpleDB\* | Cloud Firestore | Cosmos DB | - | ApsaraDB for MongoDB\* | - | - | +| Security/ Authorization | Identity Access Management | AWS IAM | Cloud IAM\* | Azure Active Directory*, Azure Role Based Access Control* | - | Resource Access Management\* | - | - | +| Management | Key Management | AWS-KMS | - | - | Do-Keys | - | Monitoring | OCI KeyManagement | +| Firewalls | Firewalls | - | - | - | - | - | Firewalls | - | +| Images | Images | - | - | - | - | - | Images | - | +| Blockchain | Blockchain | - | - | - | - | - | - | OCI Blockchain | \*yet to be implemented diff --git a/assets/generator/high_level_diagrams/linode.png b/assets/generator/high_level_diagrams/linode.png new file mode 100644 index 00000000..e3cb3c33 Binary files /dev/null and b/assets/generator/high_level_diagrams/linode.png differ diff --git a/assets/generator/high_level_diagrams/linode_diagram.png b/assets/generator/high_level_diagrams/linode_diagram.png new file mode 100644 index 00000000..a5b56c14 Binary files /dev/null and b/assets/generator/high_level_diagrams/linode_diagram.png differ diff --git a/assets/generator/high_level_diagrams/oracle.png b/assets/generator/high_level_diagrams/oracle.png new file mode 100644 index 00000000..3ba89645 Binary files /dev/null and b/assets/generator/high_level_diagrams/oracle.png differ diff --git a/assets/generator/high_level_diagrams/oracle2.png b/assets/generator/high_level_diagrams/oracle2.png new file mode 100644 index 00000000..c776e000 Binary files /dev/null and b/assets/generator/high_level_diagrams/oracle2.png differ diff --git a/assets/generator/high_level_diagrams/oracle_diagram.png b/assets/generator/high_level_diagrams/oracle_diagram.png new file mode 100644 index 00000000..6c93bad2 Binary files /dev/null and b/assets/generator/high_level_diagrams/oracle_diagram.png differ diff --git a/assets/generator/high_level_diagrams/oracle_diagram2.png b/assets/generator/high_level_diagrams/oracle_diagram2.png new file mode 100644 index 00000000..3230a019 Binary files /dev/null and b/assets/generator/high_level_diagrams/oracle_diagram2.png differ diff --git a/examples/compute/linode-ks.js b/examples/compute/linode-ks.js index c1fad532..1f0af64d 100644 --- a/examples/compute/linode-ks.js +++ b/examples/compute/linode-ks.js @@ -15,6 +15,17 @@ function createCluster() { control_plane: { high_availability: true, }, + node_pools: [ + { + type: 'g6-standard-4', + count: 6, + autoscaler: { + enabled: true, + max: 12, + min: 3, + }, + }, + ], }; kubernetes.create(clusterDetails).then( @@ -41,7 +52,7 @@ function getAllClusters() { //Delete cluster function deleteCluster() { - let clusterID = 12345; + let clusterID = 127044; kubernetes.delete(clusterID).then( result => { console.log('Output :', result); @@ -54,7 +65,7 @@ function deleteCluster() { //Create a Node pool function createNodePool() { - let clusterID = 12345; + let clusterID = 127044; let poolDetails = { type: 'g6-standard-4', count: 6, @@ -78,8 +89,8 @@ function createNodePool() { //Delete a node pool function deleteNodePool() { - let nodePoolID = 12345; - let clusterID = 456; + let nodePoolID = 188341; + let clusterID = 127044; kubernetes.deleteNodePool(clusterID, nodePoolID).then( result => { console.log('Output :', result); @@ -92,8 +103,8 @@ function deleteNodePool() { //Get details of Node Pools function getNodePool() { - let nodePoolID = 12345; - let clusterID = 456; + let nodePoolID = 188341; + let clusterID = 127044; kubernetes.getNodePool(clusterID, nodePoolID).then( result => { console.log('Output :', result); @@ -106,7 +117,7 @@ function getNodePool() { //Get all Nodepools function getNodePools() { - let clusterID = 12345; + let clusterID = 127044; kubernetes.getNodePools(clusterID).then( result => { console.log('Output :', result); diff --git a/examples/database/linode-sql.js b/examples/database/linode-sql.js index 91286b09..77b82c10 100644 --- a/examples/database/linode-sql.js +++ b/examples/database/linode-sql.js @@ -8,16 +8,13 @@ const ncProviders = nodeCloud.getProviders(optionsProvider); const linodeSql = ncProviders.linode.sql(); function createDatabase() { + const engine = 'mysql'; const dbParams = { label: 'example-db', region: 'us-east', type: 'g6-dedicated-2', - cluster_size: 3, - engine: 'mysql/8.0.26', - encrypted: false, - ssl_connection: true, + engine: 'mysql/8.0.30', replication_type: 'semi_synch', - allow_list: ['203.0.113.1', '192.0.1.0/24'], }; // create database @@ -45,7 +42,7 @@ function listDatabases() { //delete a Database function deleteDatabase() { - const engine = 'mysql/8.0.26'; + const engine = 'mysql'; const dbId = 12345; linodeSql .deleteDatabase(engine, dbId) @@ -58,7 +55,7 @@ function deleteDatabase() { } //update a Database function updateDatabase() { - const engine = 'mysql/8.0.26'; + const engine = 'mysql'; const dbId = 12345; const updateData = { label: 'example-db', diff --git a/examples/images/linode-images.js b/examples/images/linode-images.js new file mode 100644 index 00000000..dd61a061 --- /dev/null +++ b/examples/images/linode-images.js @@ -0,0 +1,70 @@ +const nodeCloud = require('../../lib/'); +const optionsProvider = { + overrideProviders: false, +}; +const ncProviders = nodeCloud.getProviders(optionsProvider); + +const images = ncProviders.linode.images(); + +function createImage() { + const diskId = 123; + const label = 'this_is_a_label'; + const description = 'A longer description of the image'; + images + .createImage(diskId, label, description) + .then(result => { + console.log('Volumes are: ', result); + }) + .catch(err => { + console.log('Error is: ', err); + }); +} + +function updateImage() { + const imageId = 123; + const label = 'this_is_a_new_label'; + const description = 'A new longer description of the image'; + images + .updateImage(imageId, label, description) + .then(result => { + console.log('Volumes are: ', result); + }) + .catch(err => { + console.log('Error is: ', err); + }); +} + +function deleteImage() { + const imageId = 123; + images + .deleteImage(details) + .then(result => { + console.log('Output is: ', result); + }) + .catch(err => { + console.log('Error is: ', err); + }); +} + +function getImage() { + const imageId = 1234; + images + .getImage(imageId) + .then(result => { + console.log('Output is: ', result); + }) + .catch(err => { + console.log('Error is: ', err); + }); +} + +function listImages() { + images + .getImages() + .then(result => { + console.log('Output is: ', result); + }) + .catch(err => { + console.log('Error is: ', err); + }); +} diff --git a/examples/network/linode-dns.js b/examples/network/linode-dns.js index bd72728e..deef064f 100644 --- a/examples/network/linode-dns.js +++ b/examples/network/linode-dns.js @@ -9,7 +9,7 @@ const dns = ncProviders.linode.dns(); // Create a DNS Domain function createDomain() { let domainCreateOptions = { - domain: 'example.com', + domain: 'scorelab.com', type: 'master', soa_email: 'admin@example.com', description: 'Example Description', @@ -72,7 +72,7 @@ function deleteDomain() { function updateDomain() { let recordID = 3352896; let options = { - domain: 'example.com', + domain: 'scorelab.com', type: 'master', soa_email: 'admin@example.com', description: 'Example Description', @@ -86,7 +86,7 @@ function updateDomain() { group: 'Example Display Group', tags: ['tag1', 'tag2'], }; - updateDomain(recordID, options) + dns.updateDomain(recordID, options) .then(result => { console.log('Output is: ', result); }) diff --git a/examples/network/linode-lb.js b/examples/network/linode-lb.js index c596f0e2..43af4742 100644 --- a/examples/network/linode-lb.js +++ b/examples/network/linode-lb.js @@ -11,41 +11,7 @@ function create() { region: 'us-east', label: 'balancer12345', client_conn_throttle: 0, - configs: [ - { - port: 443, - protocol: 'https', - algorithm: 'roundrobin', - stickiness: 'http_cookie', - check: 'http_body', - check_interval: 90, - check_timeout: 10, - check_attempts: 3, - check_path: '/test', - check_body: 'it works', - check_passive: true, - proxy_protocol: 'none', - cipher_suite: 'recommended', - ssl_cert: - '-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----', - ssl_key: - '-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----', - nodes: [ - { - address: '192.168.210.120:80', - label: 'node1', - weight: 50, - mode: 'accept', - }, - { - address: '192.168.210.122:81', - label: 'node2', - weight: 50, - mode: 'accept', - }, - ], - }, - ], + configs: [], }; lb.create(options) @@ -85,43 +51,9 @@ function updateLoadBalancer() { let lbId = 4954884; let options = { region: 'us-east', - label: 'balancer12345', + label: 'newbalancer12345', client_conn_throttle: 0, - configs: [ - { - port: 443, - protocol: 'https', - algorithm: 'roundrobin', - stickiness: 'http_cookie', - check: 'http_body', - check_interval: 90, - check_timeout: 10, - check_attempts: 3, - check_path: '/test', - check_body: 'it works', - check_passive: true, - proxy_protocol: 'none', - cipher_suite: 'recommended', - ssl_cert: - '-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----', - ssl_key: - '-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----', - nodes: [ - { - address: '192.168.210.120:80', - label: 'node1', - weight: 50, - mode: 'accept', - }, - { - address: '192.168.210.122:81', - label: 'node2', - weight: 50, - mode: 'accept', - }, - ], - }, - ], + configs: [], }; lb.update(lbId, options) .then(result => { diff --git a/examples/storage/linode-objectStorage.js b/examples/storage/linode-objectStorage.js new file mode 100644 index 00000000..03e355ad --- /dev/null +++ b/examples/storage/linode-objectStorage.js @@ -0,0 +1,62 @@ +const nodeCloud = require('../../lib/'); +const optionsProvider = { + overrideProviders: false, +}; +const ncProviders = nodeCloud.getProviders(optionsProvider); + +const objectStorage = ncProviders.linode.objectStorage(); + +function createBucket() { + const details = { + label: 'nodecloud-bucket', + cluster: 'us-east-1', + cors_enabled: true, + }; + objectStorage + .create(details) + .then(result => { + console.log('Volumes are: ', result); + }) + .catch(err => { + console.log('Error is: ', err); + }); +} + +function deleteBucket() { + const details = { + cluster: 'us-east-1', + label: 'nodecloud-bucket', + }; + objectStorage + .delete(details) + .then(result => { + console.log('Output is: ', result); + }) + .catch(err => { + console.log('Error is: ', err); + }); +} + +function getBucket() { + const clusterId = 'us-east-1'; + const bucketName = 'nodecloud-bucket'; + objectStorage + .get(clusterId, bucketName) + .then(result => { + console.log('Output is: ', result); + }) + .catch(err => { + console.log('Error is: ', err); + }); +} + +function listBuckets() { + objectStorage + .list() + .then(result => { + console.log('Output is: ', result); + }) + .catch(err => { + console.log('Error is: ', err); + }); +} diff --git a/generator/README.md b/generator/README.md index d5d70d46..99043f6a 100644 --- a/generator/README.md +++ b/generator/README.md @@ -23,7 +23,7 @@ The execution of the generator starts form the `main.ts` file, where the basic i ## Structure of `node-cloud.yml` file -- AWS +- AWS ``` AWS: @@ -35,7 +35,7 @@ AWS:

-- Azure +- Azure ``` Azure: @@ -47,7 +47,7 @@ Azure:

-- Google Cloud (client based) +- Google Cloud (client based) ``` GCP: @@ -67,7 +67,7 @@ GCP:

-- Google Cloud (class based) +- Google Cloud (class based) ``` GCP: @@ -82,7 +82,7 @@ GCP: For the class-based SDKs there is a minor change in the `node-cloud.yml` to record the main class of an SDK. For the above scenario, it’s the DNS class. -- Digital Ocean +- Digital Ocean ``` DO: @@ -94,23 +94,77 @@ DO:

+- Oracle + +``` +Oracle: + create: containerengine createCluster +``` + +

+ + +

+ +``` +Oracle: + createKey: keymanagement createKey KmsManagementClient +``` + +

+ + +

+ +- Linode + +``` +Linode: + create: kubernetes kubernetes.d.ts createKubernetesCluster + + +``` + +

+ + +

+ ## Code parsers -This is the simplest part of the code generation tool. The SDK files are read from the relevant SDKs as specified in the `node-cloud.yml` file. Afterwards, it is converted to an **Abstract Syntax Tree**. Finally, the class declaration Node of that **Abstract Syntax Tree** is returned. This retured Node is another **Abstract Syntax Tree** since a class declaration itself is another **Abstract Syntax Tree**. +This is the simplest part of the code generation tool. The SDK files are read from the relevant SDKs as specified in the `node-cloud.yml` file. Afterwards, it is converted to an **Abstract Syntax Tree**. Finally, the class declaration Node of that **Abstract Syntax Tree** is returned in case of SDKs which are class based, for SDKs like Linode which are function based we collect the FirstStatement nodes in an array which represent the exported arrow function declaration. This retured Node is another **Abstract Syntax Tree** since a class declaration itself is another **Abstract Syntax Tree**. ## Data extraction functions These functions are located in the generators of the each cloud providers. Each data extration function has a unique logic depending on the **Abstract Syntax Tree** of a SDK class. The goal here is to extract all the data required to generate the new JavaScript class. At the end it is retured as `classData`. The data extration function collects imports, clients, method parameters, types of parameters, method return types and package names. Additionally, class relationships are identified in the Google Cloud data extraction function for the Google Cloud class based transformer. +For Linode Cloud Provider in some function the function parameters had two nested parameters so to solve this problem and take both the parameters into consideration the below code has been implemented. + +``` + if (param.name.elements) { + const parameter: param = { + name: + '{' + + param.name.elements[0].name.text + + ',' + + param.name.elements[1].name.text + + '}', + optional: param.questionToken ? true : false, + type: SyntaxKind[param.type.kind], + typeName: null, + }; +``` +In the above code we have looked for sub elements in a function parameter and printed both of them in braces. + ## Transformers This is the most important part of the code generator tool. Currently, there are four transformers. Two transformers for Google Cloud, and one each for AWS and Azure. All of the transformers runs three main transformations. -- `addFunctions`: In this transformation the basic structure of the code is created. Method Nodes are created to the number of functions in the `classData` object. If there are imports related to the class those statments are also added to the dummy **Abstract Syntax Tree**. +- `addFunctions`: In this transformation the basic structure of the code is created. Method Nodes are created to the number of functions in the `classData` object. If there are imports related to the class those statments are also added to the dummy **Abstract Syntax Tree**. -- `addIdentifiers`: In this transformation all the Identifier nodes are updated. After this transformation the code is logically compelete. All the neccessary code parts are added and finalized such as parameter names, parameter types, client names, class name, package names, SDK function names etc. +- `addIdentifiers`: In this transformation all the Identifier nodes are updated. After this transformation the code is logically compelete. All the neccessary code parts are added and finalized such as parameter names, parameter types, client names, class name, package names, SDK function names etc. -- `addComments`: This transformation aims to auto-generate the API documentation. All the comments are added to the structure required by `JSDoc`. The `@category` is used to categorize the generated classes depending on the cloud provider. This tag is from the `better-docs` template used with `JSDoc`. +- `addComments`: This transformation aims to auto-generate the API documentation. All the comments are added to the structure required by `JSDoc`. The `@category` is used to categorize the generated classes depending on the cloud provider. This tag is from the `better-docs` template used with `JSDoc`. ## Understanding the directory structure of generator @@ -136,4 +190,4 @@ transformer which transforms the dummy class into an working Nodecloud class for ## Running the code generation tool -- To build classes run `tsc main && node main` or 'yarn run tool' if inside generator directory and `yarn run generator` if inside nodecloud directory. +- To build classes run `tsc main && node main` or 'yarn run tool' if inside generator directory and `yarn run generator` if inside nodecloud directory. diff --git a/generator/dummyClasses/linode.js b/generator/dummyClasses/linode.js index f83f7bf1..3982cd47 100644 --- a/generator/dummyClasses/linode.js +++ b/generator/dummyClasses/linode.js @@ -1,8 +1,8 @@ class ClassName { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/dummyClasses/oracle.js b/generator/dummyClasses/oracle.js index 34cdfbef..cc7dece5 100644 --- a/generator/dummyClasses/oracle.js +++ b/generator/dummyClasses/oracle.js @@ -1,12 +1,13 @@ class ClassName { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.SDKClassName( + this._sdkClassName = this._oci.SDKClassName( params, clientConfiguration ); diff --git a/generator/generatedClasses/DO/storage/do-archivalStorage.js b/generator/generatedClasses/DO/storage/do-archivalStorage.js deleted file mode 100644 index 9ce3d3ff..00000000 --- a/generator/generatedClasses/DO/storage/do-archivalStorage.js +++ /dev/null @@ -1,72 +0,0 @@ -/*This is an auto generated class, please do not change.*/ -/** - * Class to create a ObjectStorageClient object - * @category Oracle Cloud - */ -class Oracle_ArchivalStorage { - /** - * - * @param {module} do Oracle SDK - * @param {object} options SDK options - */ - constructor(ocisdk, params, clientConfiguration) { - this._oci = ocisdk; - this._sdkclassName = this._oci.objectStorageClient( - params, - clientConfiguration - ); - } - /** - * Trigers the createBucket function of ObjectStorageClient - * @param {CreateBucketRequest} createBucketRequest - Data required for createBucket - * @returns {Promise} - */ - create(createBucketRequest) { - return new Promise((resolve, reject) => { - this._objectStorageClient - .createBucket(createBucketRequest) - .then(data => resolve(data)) - .catch(err => reject(err)); - }); - } - /** - * Trigers the deleteBucket function of ObjectStorageClient - * @param {DeleteBucketRequest} deleteBucketRequest - Data required for deleteBucket - * @returns {Promise} - */ - delete(deleteBucketRequest) { - return new Promise((resolve, reject) => { - this._objectStorageClient - .deleteBucket(deleteBucketRequest) - .then(data => resolve(data)) - .catch(err => reject(err)); - }); - } - /** - * Trigers the listBuckets function of ObjectStorageClient - * @param {ListBucketsRequest} listBucketsRequest - Data required for listBuckets - * @returns {Promise} - */ - list(listBucketsRequest) { - return new Promise((resolve, reject) => { - this._objectStorageClient - .listBuckets(listBucketsRequest) - .then(data => resolve(data)) - .catch(err => reject(err)); - }); - } - /** - * Trigers the updateBucket function of ObjectStorageClient - * @param {UpdateBucketRequest} updateBucketRequest - Data required for updateBucket - * @returns {Promise} - */ - update(updateBucketRequest) { - return new Promise((resolve, reject) => { - this._objectStorageClient - .updateBucket(updateBucketRequest) - .then(data => resolve(data)) - .catch(err => reject(err)); - }); - } -} -module.exports = Oracle_ArchivalStorage; diff --git a/generator/generatedClasses/Linode/compute/linode-computeInstance.js b/generator/generatedClasses/Linode/compute/linode-computeInstance.js index 1c04aa1b..07d14748 100644 --- a/generator/generatedClasses/Linode/compute/linode-computeInstance.js +++ b/generator/generatedClasses/Linode/compute/linode-computeInstance.js @@ -6,8 +6,8 @@ class Linode_ComputeInstance { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/generatedClasses/Linode/compute/linode-kubernetes.js b/generator/generatedClasses/Linode/compute/linode-kubernetes.js index 0656b2c6..5b73741d 100644 --- a/generator/generatedClasses/Linode/compute/linode-kubernetes.js +++ b/generator/generatedClasses/Linode/compute/linode-kubernetes.js @@ -6,8 +6,8 @@ class Linode_Kubernetes { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/generatedClasses/Linode/database/linode-noSql.js b/generator/generatedClasses/Linode/database/linode-RDBMS.js similarity index 83% rename from generator/generatedClasses/Linode/database/linode-noSql.js rename to generator/generatedClasses/Linode/database/linode-RDBMS.js index 666420ce..a3b2b0f7 100644 --- a/generator/generatedClasses/Linode/database/linode-noSql.js +++ b/generator/generatedClasses/Linode/database/linode-RDBMS.js @@ -1,13 +1,13 @@ /*This is an auto generated class, please do not change.*/ /** - * Class to create a NoSqlLinodeClass object + * Class to create a RDBMSLinodeClass object * @category Linode */ -class Linode_NoSql { +class Linode_RDBMS { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; @@ -15,7 +15,7 @@ class Linode_NoSql { this._linode.setToken(this._linodeToken); } /** - * Trigers the getDatabases function of NoSqlLinodeClass + * Trigers the getDatabases function of RDBMSLinodeClass * @param {Params} params - Data required for getDatabases * @param {Filter} filter - Data required for getDatabases * @returns {Promise} @@ -29,7 +29,7 @@ class Linode_NoSql { }); } /** - * Trigers the getDatabaseEngines function of NoSqlLinodeClass + * Trigers the getDatabaseEngines function of RDBMSLinodeClass * @param {Params} params - Data required for getDatabaseEngines * @param {Filter} filter - Data required for getDatabaseEngines * @returns {Promise} @@ -43,7 +43,7 @@ class Linode_NoSql { }); } /** - * Trigers the createDatabase function of NoSqlLinodeClass + * Trigers the createDatabase function of RDBMSLinodeClass * @param {UnionType} engine - Data required for createDatabase * @param {CreateDatabasePayload} data - Data required for createDatabase * @returns {Promise} @@ -57,7 +57,7 @@ class Linode_NoSql { }); } /** - * Trigers the getEngineDatabase function of NoSqlLinodeClass + * Trigers the getEngineDatabase function of RDBMSLinodeClass * @param {Engine} engine - Data required for getEngineDatabase * @param {NumberKeyword} databaseID - Data required for getEngineDatabase * @returns {Promise} @@ -71,7 +71,7 @@ class Linode_NoSql { }); } /** - * Trigers the updateDatabase function of NoSqlLinodeClass + * Trigers the updateDatabase function of RDBMSLinodeClass * @param {Engine} engine - Data required for updateDatabase * @param {NumberKeyword} databaseID - Data required for updateDatabase * @param {UpdateDatabasePayload} data - Data required for updateDatabase @@ -86,7 +86,7 @@ class Linode_NoSql { }); } /** - * Trigers the deleteDatabase function of NoSqlLinodeClass + * Trigers the deleteDatabase function of RDBMSLinodeClass * @param {Engine} engine - Data required for deleteDatabase * @param {NumberKeyword} databaseID - Data required for deleteDatabase * @returns {Promise} @@ -100,4 +100,4 @@ class Linode_NoSql { }); } } -module.exports = Linode_NoSql; +module.exports = Linode_RDBMS; diff --git a/generator/generatedClasses/Linode/firewalls/linode-firewalls.js b/generator/generatedClasses/Linode/firewalls/linode-firewalls.js index d5f7f8ec..2cfc10f0 100644 --- a/generator/generatedClasses/Linode/firewalls/linode-firewalls.js +++ b/generator/generatedClasses/Linode/firewalls/linode-firewalls.js @@ -6,8 +6,8 @@ class Linode_Firewalls { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/generatedClasses/Linode/images/linode-images.js b/generator/generatedClasses/Linode/images/linode-images.js index 2fc677ab..2d0651fc 100644 --- a/generator/generatedClasses/Linode/images/linode-images.js +++ b/generator/generatedClasses/Linode/images/linode-images.js @@ -6,8 +6,8 @@ class Linode_Images { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/generatedClasses/Linode/management/linode-monitoring.js b/generator/generatedClasses/Linode/management/linode-monitoring.js index 875b7917..87bd1334 100644 --- a/generator/generatedClasses/Linode/management/linode-monitoring.js +++ b/generator/generatedClasses/Linode/management/linode-monitoring.js @@ -6,8 +6,8 @@ class Linode_Monitoring { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/generatedClasses/Linode/network/linode-DNS.js b/generator/generatedClasses/Linode/network/linode-DNS.js index 6871defd..a3c1d066 100644 --- a/generator/generatedClasses/Linode/network/linode-DNS.js +++ b/generator/generatedClasses/Linode/network/linode-DNS.js @@ -6,8 +6,8 @@ class Linode_DNS { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/generatedClasses/Linode/network/linode-loadBalancer.js b/generator/generatedClasses/Linode/network/linode-loadBalancer.js index 08b9315d..7af0d984 100644 --- a/generator/generatedClasses/Linode/network/linode-loadBalancer.js +++ b/generator/generatedClasses/Linode/network/linode-loadBalancer.js @@ -6,8 +6,8 @@ class Linode_LoadBalancer { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/generatedClasses/Linode/storage/linode-blockStorage.js b/generator/generatedClasses/Linode/storage/linode-blockStorage.js index 7d8ab850..29846fc6 100644 --- a/generator/generatedClasses/Linode/storage/linode-blockStorage.js +++ b/generator/generatedClasses/Linode/storage/linode-blockStorage.js @@ -6,8 +6,8 @@ class Linode_BlockStorage { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/generatedClasses/Linode/storage/linode-storageBucket.js b/generator/generatedClasses/Linode/storage/linode-storageBucket.js index 5b3b0741..54b7b993 100644 --- a/generator/generatedClasses/Linode/storage/linode-storageBucket.js +++ b/generator/generatedClasses/Linode/storage/linode-storageBucket.js @@ -6,8 +6,8 @@ class Linode_StorageBucket { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; diff --git a/generator/generatedClasses/Oracle/blockchain/oci-blockChain.js b/generator/generatedClasses/Oracle/blockchain/oci-blockChain.js index b69a1a5e..8ec5a5fa 100644 --- a/generator/generatedClasses/Oracle/blockchain/oci-blockChain.js +++ b/generator/generatedClasses/Oracle/blockchain/oci-blockChain.js @@ -6,12 +6,13 @@ class Oracle_BlockChain { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.BlockchainPlatformClient( + this._blockchainPlatformClient = this._oci.BlockchainPlatformClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/compute/oci-computeInstance.js b/generator/generatedClasses/Oracle/compute/oci-computeInstance.js index 041d1d7b..61a4d3c6 100644 --- a/generator/generatedClasses/Oracle/compute/oci-computeInstance.js +++ b/generator/generatedClasses/Oracle/compute/oci-computeInstance.js @@ -6,12 +6,13 @@ class Oracle_ComputeInstance { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.ContainerInstanceClient( + this._containerInstanceClient = this._oci.ContainerInstanceClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/compute/oci-container.js b/generator/generatedClasses/Oracle/compute/oci-container.js index c6d2446a..9e51ea9f 100644 --- a/generator/generatedClasses/Oracle/compute/oci-container.js +++ b/generator/generatedClasses/Oracle/compute/oci-container.js @@ -6,12 +6,13 @@ class Oracle_Container { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.ContainerInstanceClient( + this._containerInstanceClient = this._oci.ContainerInstanceClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/compute/oci-kubernetes.js b/generator/generatedClasses/Oracle/compute/oci-kubernetes.js index 3efe8d9a..f2a468c8 100644 --- a/generator/generatedClasses/Oracle/compute/oci-kubernetes.js +++ b/generator/generatedClasses/Oracle/compute/oci-kubernetes.js @@ -6,12 +6,13 @@ class Oracle_Kubernetes { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.ContainerEngineClient( + this._containerEngineClient = this._oci.ContainerEngineClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/database/oci-RDBMS.js b/generator/generatedClasses/Oracle/database/oci-RDBMS.js index cd2dbaeb..4032123f 100644 --- a/generator/generatedClasses/Oracle/database/oci-RDBMS.js +++ b/generator/generatedClasses/Oracle/database/oci-RDBMS.js @@ -6,12 +6,13 @@ class Oracle_RDBMS { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.DbSystemClient( + this._dbSystemClient = this._oci.DbSystemClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/database/oci-noSql.js b/generator/generatedClasses/Oracle/database/oci-noSql.js index 2d8f73db..d049fbfd 100644 --- a/generator/generatedClasses/Oracle/database/oci-noSql.js +++ b/generator/generatedClasses/Oracle/database/oci-noSql.js @@ -6,12 +6,13 @@ class Oracle_NoSql { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.NosqlClient(params, clientConfiguration); + this._nosqlClient = this._oci.NosqlClient(params, clientConfiguration); } /** * Trigers the createTable function of NosqlClient diff --git a/generator/generatedClasses/Oracle/devops/oci-devops.js b/generator/generatedClasses/Oracle/devops/oci-devops.js index d8563f82..f0943636 100644 --- a/generator/generatedClasses/Oracle/devops/oci-devops.js +++ b/generator/generatedClasses/Oracle/devops/oci-devops.js @@ -6,12 +6,13 @@ class Oracle_Devops { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.DevopsClient( + this._devopsClient = this._oci.DevopsClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/management/oci-keyManagement.js b/generator/generatedClasses/Oracle/management/oci-keyManagement.js index 0c83bcc8..49c34874 100644 --- a/generator/generatedClasses/Oracle/management/oci-keyManagement.js +++ b/generator/generatedClasses/Oracle/management/oci-keyManagement.js @@ -6,12 +6,13 @@ class Oracle_KeyManagement { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.KmsManagementClient( + this._kmsManagementClient = this._oci.KmsManagementClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/management/oci-notificationService.js b/generator/generatedClasses/Oracle/management/oci-notificationService.js index e881d089..0bc11a1b 100644 --- a/generator/generatedClasses/Oracle/management/oci-notificationService.js +++ b/generator/generatedClasses/Oracle/management/oci-notificationService.js @@ -6,12 +6,13 @@ class Oracle_NotificationService { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.NotificationDataPlaneClient( + this._notificationDataPlaneClient = this._oci.NotificationDataPlaneClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/network/oci-DNS.js b/generator/generatedClasses/Oracle/network/oci-DNS.js index 934c277e..52cd67f9 100644 --- a/generator/generatedClasses/Oracle/network/oci-DNS.js +++ b/generator/generatedClasses/Oracle/network/oci-DNS.js @@ -6,12 +6,13 @@ class Oracle_DNS { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.DnsClient(params, clientConfiguration); + this._dnsClient = this._oci.DnsClient(params, clientConfiguration); } /** * Trigers the createZone function of DnsClient diff --git a/generator/generatedClasses/Oracle/network/oci-loadBalancer.js b/generator/generatedClasses/Oracle/network/oci-loadBalancer.js index fdc04bd4..21faafa6 100644 --- a/generator/generatedClasses/Oracle/network/oci-loadBalancer.js +++ b/generator/generatedClasses/Oracle/network/oci-loadBalancer.js @@ -6,12 +6,13 @@ class Oracle_LoadBalancer { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.LoadBalancerClient( + this._loadBalancerClient = this._oci.LoadBalancerClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/storage/oci-archivalStorage.js b/generator/generatedClasses/Oracle/storage/oci-archivalStorage.js index 5ee149d6..fe306c87 100644 --- a/generator/generatedClasses/Oracle/storage/oci-archivalStorage.js +++ b/generator/generatedClasses/Oracle/storage/oci-archivalStorage.js @@ -6,12 +6,13 @@ class Oracle_ArchivalStorage { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.ObjectStorageClient( + this._objectStorageClient = this._oci.ObjectStorageClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/storage/oci-blockStorage.js b/generator/generatedClasses/Oracle/storage/oci-blockStorage.js index 564157f5..26dc83ac 100644 --- a/generator/generatedClasses/Oracle/storage/oci-blockStorage.js +++ b/generator/generatedClasses/Oracle/storage/oci-blockStorage.js @@ -6,12 +6,13 @@ class Oracle_BlockStorage { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.BlockstorageClient( + this._blockstorageClient = this._oci.BlockstorageClient( params, clientConfiguration ); diff --git a/generator/generatedClasses/Oracle/storage/oci-storageBucket.js b/generator/generatedClasses/Oracle/storage/oci-storageBucket.js index d275871b..b7d643ed 100644 --- a/generator/generatedClasses/Oracle/storage/oci-storageBucket.js +++ b/generator/generatedClasses/Oracle/storage/oci-storageBucket.js @@ -6,12 +6,13 @@ class Oracle_StorageBucket { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.ObjectStorageClient( + this._objectStorageClient = this._oci.ObjectStorageClient( params, clientConfiguration ); diff --git a/generator/node-cloud.yml b/generator/node-cloud.yml index 59e812c2..1dccca6b 100644 --- a/generator/node-cloud.yml +++ b/generator/node-cloud.yml @@ -265,6 +265,13 @@ RDBMS: startDBSystem: mysql startDbSystem DbSystemClient stopDBSystem: mysql stopDbSystem DbSystemClient updateDBSystem: mysql updateDbSystem DbSystemClient + Linode: + createDatabase: databases databases.d.ts createDatabase + updateDatabase: databases databases.d.ts updateDatabase + deleteDatabase: databases databases.d.ts deleteDatabase + getDatabases: databases databases.d.ts getDatabases + getDatabaseEngines: databases databases.d.ts getDatabaseEngines + getEngineDatabase: databases databases.d.ts getEngineDatabase NoSql: AWS: @@ -299,13 +306,6 @@ NoSql: deleteRow: nosql deleteRow getRow: nosql getRow updateRow: nosql updateRow - Linode: - createDatabase: databases databases.d.ts createDatabase - updateDatabase: databases databases.d.ts updateDatabase - deleteDatabase: databases databases.d.ts deleteDatabase - getDatabases: databases databases.d.ts getDatabases - getDatabaseEngines: databases databases.d.ts getDatabaseEngines - getEngineDatabase: databases databases.d.ts getEngineDatabase DNS: AWS: diff --git a/generator/package.json b/generator/package.json index 51f6a8a6..8f6f595c 100644 --- a/generator/package.json +++ b/generator/package.json @@ -31,6 +31,7 @@ "@google-cloud/pubsub": "^2.1.0", "@google-cloud/storage": "^5.1.1", "@google-cloud/translate": "^6.0.0", + "@linode/api-v4": "^0.97.0", "aws-sdk": "^2.686.0", "config": "^1.26.1", "do-wrapper": "^4.5.1", diff --git a/generator/transformers/aws/transformer.ts b/generator/transformers/aws/transformer.ts index 30f44614..ed063fe9 100644 --- a/generator/transformers/aws/transformer.ts +++ b/generator/transformers/aws/transformer.ts @@ -152,9 +152,9 @@ export async function transform( ts.isIdentifier(childNode) && childNode.text === 'SDKFunctionName' ) { - const args = classData.functions[ - count - ].params.map(param => ts.createIdentifier(param.name)); + const args = classData.functions[count].params.map( + param => ts.createIdentifier(param.name) + ); node.arguments = args.concat(node.arguments); } }); diff --git a/generator/transformers/azure/transformer.ts b/generator/transformers/azure/transformer.ts index 24b0a4d9..e27a4ef6 100644 --- a/generator/transformers/azure/transformer.ts +++ b/generator/transformers/azure/transformer.ts @@ -187,9 +187,9 @@ export async function transform( ts.isIdentifier(childNode) && childNode.text === 'SDKFunctionName' ) { - const args = classData.functions[ - count - ].params.map(param => ts.createIdentifier(param.name)); + const args = classData.functions[count].params.map( + param => ts.createIdentifier(param.name) + ); node.arguments = args; } }); diff --git a/generator/transformers/do/transformer.ts b/generator/transformers/do/transformer.ts index 15b7b45a..115ed946 100644 --- a/generator/transformers/do/transformer.ts +++ b/generator/transformers/do/transformer.ts @@ -167,9 +167,9 @@ export async function transform( ts.isIdentifier(childNode) && childNode.text === 'SDKFunctionName' ) { - const args = classData.functions[ - count - ].params.map(param => ts.createIdentifier(param.name)); + const args = classData.functions[count].params.map( + param => ts.createIdentifier(param.name) + ); node.arguments = args.concat(node.arguments); } }); diff --git a/generator/transformers/googleCloud/clientBasedTransformer.ts b/generator/transformers/googleCloud/clientBasedTransformer.ts index fbfdbe48..b2819e53 100644 --- a/generator/transformers/googleCloud/clientBasedTransformer.ts +++ b/generator/transformers/googleCloud/clientBasedTransformer.ts @@ -217,9 +217,9 @@ export async function clientBasedTransform( ts.isIdentifier(childNode) && childNode.text === 'SDKFunctionName' ) { - const args = classData.functions[ - count - ].params.map(param => ts.createIdentifier(param.name)); + const args = classData.functions[count].params.map( + param => ts.createIdentifier(param.name) + ); node.arguments = args; } }); diff --git a/generator/transformers/linode/transformer.ts b/generator/transformers/linode/transformer.ts index 01b5e973..cf3e6c2b 100644 --- a/generator/transformers/linode/transformer.ts +++ b/generator/transformers/linode/transformer.ts @@ -75,12 +75,6 @@ export async function transform( return ts.visitNode(rootNode, visit); }; - // const addIdentifiers = ( - // context: ts.TransformationContext - // ) => (rootNode: T) => { - // let count = 0; - // }; - const addIdentifiers = ( context: ts.TransformationContext ) => (rootNode: T) => { @@ -138,9 +132,9 @@ export async function transform( ts.isIdentifier(childNode) && childNode.text === 'SDKFunctionName' ) { - const args = classData.functions[ - count - ].params.map(param => ts.createIdentifier(param.name)); + const args = classData.functions[count].params.map( + param => ts.createIdentifier(param.name) + ); node.arguments = args.concat(node.arguments); } }); diff --git a/generator/transformers/oracle/transformer.ts b/generator/transformers/oracle/transformer.ts index 1d5bf81c..d01a42d9 100644 --- a/generator/transformers/oracle/transformer.ts +++ b/generator/transformers/oracle/transformer.ts @@ -159,9 +159,9 @@ export async function transform( ts.isIdentifier(childNode) && childNode.text === 'SDKFunctionName' ) { - const args = classData.functions[ - count - ].params.map(param => ts.createIdentifier(param.name)); + const args = classData.functions[count].params.map( + param => ts.createIdentifier(param.name) + ); node.arguments = args.concat(node.arguments); } }); diff --git a/packages/linode-plugin/compute/linode-computeInstance.js b/packages/linode-plugin/compute/linode-computeInstance.js index 11073154..07d14748 100644 --- a/packages/linode-plugin/compute/linode-computeInstance.js +++ b/packages/linode-plugin/compute/linode-computeInstance.js @@ -6,12 +6,13 @@ class Linode_ComputeInstance { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); } /** * Trigers the getLinodes function of ComputeInstanceLinodeClass @@ -20,7 +21,6 @@ class Linode_ComputeInstance { * @returns {Promise} */ list(params = undefined, filter = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getLinodes(params, filter) @@ -34,7 +34,6 @@ class Linode_ComputeInstance { * @returns {Promise} */ create(data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createLinode(data) @@ -49,7 +48,6 @@ class Linode_ComputeInstance { * @returns {Promise} */ update(linodeId, values) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateLinode(linodeId, values) @@ -63,7 +61,6 @@ class Linode_ComputeInstance { * @returns {Promise} */ delete(linodeId) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteLinode(linodeId) diff --git a/packages/linode-plugin/compute/linode-kubernetes.js b/packages/linode-plugin/compute/linode-kubernetes.js index 34e3ef4c..5b73741d 100644 --- a/packages/linode-plugin/compute/linode-kubernetes.js +++ b/packages/linode-plugin/compute/linode-kubernetes.js @@ -6,12 +6,27 @@ class Linode_Kubernetes { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); + } + /** + * Trigers the getKubernetesClusters function of KubernetesLinodeClass + * @param {Params} params - Data required for getKubernetesClusters + * @param {Filter} filters - Data required for getKubernetesClusters + * @returns {Promise} + */ + getAllClusters(params = undefined, filters = undefined) { + return new Promise((resolve, reject) => { + this._linode + .getKubernetesClusters(params, filters) + .then(data => resolve(data)) + .catch(err => reject(err)); + }); } /** * Trigers the createKubernetesCluster function of KubernetesLinodeClass @@ -19,7 +34,6 @@ class Linode_Kubernetes { * @returns {Promise} */ create(data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createKubernetesCluster(data) @@ -33,7 +47,6 @@ class Linode_Kubernetes { * @returns {Promise} */ delete(clusterID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteKubernetesCluster(clusterID) @@ -41,6 +54,21 @@ class Linode_Kubernetes { .catch(err => reject(err)); }); } + /** + * Trigers the getNodePools function of KubernetesLinodeClass + * @param {NumberKeyword} clusterID - Data required for getNodePools + * @param {Params} params - Data required for getNodePools + * @param {Filter} filters - Data required for getNodePools + * @returns {Promise} + */ + getNodePools(clusterID, params = undefined, filters = undefined) { + return new Promise((resolve, reject) => { + this._linode + .getNodePools(clusterID, params, filters) + .then(data => resolve(data)) + .catch(err => reject(err)); + }); + } /** * Trigers the getNodePool function of KubernetesLinodeClass * @param {NumberKeyword} clusterID - Data required for getNodePool @@ -48,7 +76,6 @@ class Linode_Kubernetes { * @returns {Promise} */ getNodePool(clusterID, nodePoolID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getNodePool(clusterID, nodePoolID) @@ -63,7 +90,6 @@ class Linode_Kubernetes { * @returns {Promise} */ createNodePool(clusterID, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createNodePool(clusterID, data) @@ -79,7 +105,6 @@ class Linode_Kubernetes { * @returns {Promise} */ updateNodePool(clusterID, nodePoolID, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateNodePool(clusterID, nodePoolID, data) @@ -94,7 +119,6 @@ class Linode_Kubernetes { * @returns {Promise} */ deleteNodePool(clusterID, nodePoolID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteNodePool(clusterID, nodePoolID) diff --git a/packages/linode-plugin/database/linode-noSql.js b/packages/linode-plugin/database/linode-RDBMS.js similarity index 78% rename from packages/linode-plugin/database/linode-noSql.js rename to packages/linode-plugin/database/linode-RDBMS.js index fe19e6e0..a3b2b0f7 100644 --- a/packages/linode-plugin/database/linode-noSql.js +++ b/packages/linode-plugin/database/linode-RDBMS.js @@ -1,26 +1,26 @@ /*This is an auto generated class, please do not change.*/ /** - * Class to create a NoSqlLinodeClass object + * Class to create a RDBMSLinodeClass object * @category Linode */ -class Linode_NoSql { +class Linode_RDBMS { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); } /** - * Trigers the getDatabases function of NoSqlLinodeClass + * Trigers the getDatabases function of RDBMSLinodeClass * @param {Params} params - Data required for getDatabases * @param {Filter} filter - Data required for getDatabases * @returns {Promise} */ getDatabases(params = undefined, filter = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getDatabases(params, filter) @@ -29,13 +29,12 @@ class Linode_NoSql { }); } /** - * Trigers the getDatabaseEngines function of NoSqlLinodeClass + * Trigers the getDatabaseEngines function of RDBMSLinodeClass * @param {Params} params - Data required for getDatabaseEngines * @param {Filter} filter - Data required for getDatabaseEngines * @returns {Promise} */ getDatabaseEngines(params = undefined, filter = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getDatabaseEngines(params, filter) @@ -44,13 +43,12 @@ class Linode_NoSql { }); } /** - * Trigers the createDatabase function of NoSqlLinodeClass + * Trigers the createDatabase function of RDBMSLinodeClass * @param {UnionType} engine - Data required for createDatabase * @param {CreateDatabasePayload} data - Data required for createDatabase * @returns {Promise} */ createDatabase(engine, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createDatabase(engine, data) @@ -59,13 +57,12 @@ class Linode_NoSql { }); } /** - * Trigers the getEngineDatabase function of NoSqlLinodeClass + * Trigers the getEngineDatabase function of RDBMSLinodeClass * @param {Engine} engine - Data required for getEngineDatabase * @param {NumberKeyword} databaseID - Data required for getEngineDatabase * @returns {Promise} */ getEngineDatabase(engine, databaseID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getEngineDatabase(engine, databaseID) @@ -74,14 +71,13 @@ class Linode_NoSql { }); } /** - * Trigers the updateDatabase function of NoSqlLinodeClass + * Trigers the updateDatabase function of RDBMSLinodeClass * @param {Engine} engine - Data required for updateDatabase * @param {NumberKeyword} databaseID - Data required for updateDatabase * @param {UpdateDatabasePayload} data - Data required for updateDatabase * @returns {Promise} */ updateDatabase(engine, databaseID, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateDatabase(engine, databaseID, data) @@ -90,13 +86,12 @@ class Linode_NoSql { }); } /** - * Trigers the deleteDatabase function of NoSqlLinodeClass + * Trigers the deleteDatabase function of RDBMSLinodeClass * @param {Engine} engine - Data required for deleteDatabase * @param {NumberKeyword} databaseID - Data required for deleteDatabase * @returns {Promise} */ deleteDatabase(engine, databaseID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteDatabase(engine, databaseID) @@ -105,4 +100,4 @@ class Linode_NoSql { }); } } -module.exports = Linode_NoSql; +module.exports = Linode_RDBMS; diff --git a/packages/linode-plugin/firewalls/linode-firewalls.js b/packages/linode-plugin/firewalls/linode-firewalls.js index b1b07143..2cfc10f0 100644 --- a/packages/linode-plugin/firewalls/linode-firewalls.js +++ b/packages/linode-plugin/firewalls/linode-firewalls.js @@ -6,12 +6,13 @@ class Linode_Firewalls { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); } /** * Trigers the getFirewalls function of FirewallsLinodeClass @@ -20,7 +21,6 @@ class Linode_Firewalls { * @returns {Promise} */ getFirewalls(params = undefined, filter = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getFirewalls(params, filter) @@ -34,7 +34,6 @@ class Linode_Firewalls { * @returns {Promise} */ getFirewall(firewallID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getFirewall(firewallID) @@ -48,7 +47,6 @@ class Linode_Firewalls { * @returns {Promise} */ createFirewall(data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createFirewall(data) @@ -63,7 +61,6 @@ class Linode_Firewalls { * @returns {Promise} */ updateFirewall(firewallID, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateFirewall(firewallID, data) @@ -77,7 +74,6 @@ class Linode_Firewalls { * @returns {Promise} */ enableFirewall(firewallID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .enableFirewall(firewallID) @@ -91,7 +87,6 @@ class Linode_Firewalls { * @returns {Promise} */ disableFirewall(firewallID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .disableFirewall(firewallID) @@ -105,7 +100,6 @@ class Linode_Firewalls { * @returns {Promise} */ deleteFirewall(firewallID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteFirewall(firewallID) diff --git a/packages/linode-plugin/images/linode-images.js b/packages/linode-plugin/images/linode-images.js index 09118eb2..2d0651fc 100644 --- a/packages/linode-plugin/images/linode-images.js +++ b/packages/linode-plugin/images/linode-images.js @@ -6,12 +6,13 @@ class Linode_Images { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); } /** * Trigers the getImage function of ImagesLinodeClass @@ -19,7 +20,6 @@ class Linode_Images { * @returns {Promise} */ getImage(imageId) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getImage(imageId) @@ -34,7 +34,6 @@ class Linode_Images { * @returns {Promise} */ getImages(params = undefined, filters = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getImages(params, filters) @@ -56,7 +55,6 @@ class Linode_Images { description = undefined, cloud_init = undefined ) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createImage(diskId, label, description, cloud_init) @@ -72,7 +70,6 @@ class Linode_Images { * @returns {Promise} */ updateImage(imageId, label = undefined, description = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateImage(imageId, label, description) @@ -86,7 +83,6 @@ class Linode_Images { * @returns {Promise} */ deleteImage(imageId) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteImage(imageId) @@ -100,7 +96,6 @@ class Linode_Images { * @returns {Promise} */ uploadImage(data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .uploadImage(data) diff --git a/packages/linode-plugin/linode.js b/packages/linode-plugin/linode.js index 464c32f8..fa81e8e9 100644 --- a/packages/linode-plugin/linode.js +++ b/packages/linode-plugin/linode.js @@ -1,11 +1,13 @@ const computeInstance = require('./compute/linode-computeInstance'); const kubernetes = require('./compute/linode-kubernetes'); -const noSql = require('./database/linode-noSql'); +const sql = require('./database/linode-RDBMS'); const loadBalancer = require('./network/linode-loadBalancer'); const linodeDns = require('./network/linode-DNS'); const volume = require('./storage/linode-blockStorage'); const images = require('./images/linode-images'); const firewalls = require('./firewalls/linode-firewalls'); +const objectStorage = require('./storage/linode-storageBucket'); +const monitoring = require('./management/linode-monitoring'); class Linode { constructor(linodeSdk) { this._linodeSdk = linodeSdk; @@ -20,10 +22,12 @@ class Linode { blockStorage: this.volume, loadBalancer: this.loadBalancer, dns: this.linodeDns, - noSql: this.noSql, + sql: this.sql, kubernetes: this.kubernetes, firewalls: this.firewalls, images: this.images, + objectStorage: this.objectStorage, + monitoring: this.monitoring, }; } @@ -33,8 +37,8 @@ class Linode { kubernetes() { return new kubernetes(this.getSDK(), this.getToken()); } - noSql() { - return new noSql(this.getSDK(), this.getToken()); + sql() { + return new sql(this.getSDK(), this.getToken()); } linodeDns() { return new linodeDns(this.getSDK(), this.getToken()); @@ -51,5 +55,11 @@ class Linode { firewalls() { return new firewalls(this.getSDK(), this.getToken()); } + objectStorage() { + return new objectStorage(this.getSDK(), this.getToken()); + } + monitoring() { + return new monitoring(this.getSDK(), this.getToken()); + } } module.exports = Linode; diff --git a/packages/linode-plugin/management/linode-monitoring.js b/packages/linode-plugin/management/linode-monitoring.js index a10c532f..87bd1334 100644 --- a/packages/linode-plugin/management/linode-monitoring.js +++ b/packages/linode-plugin/management/linode-monitoring.js @@ -6,12 +6,13 @@ class Linode_Monitoring { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); } /** * Trigers the getServices function of MonitoringLinodeClass @@ -20,7 +21,6 @@ class Linode_Monitoring { * @returns {Promise} */ getServices(params = undefined, filters = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getServices(params, filters) @@ -34,7 +34,6 @@ class Linode_Monitoring { * @returns {Promise} */ disableServiceMonitor(serviceID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .disableServiceMonitor(serviceID) @@ -48,7 +47,6 @@ class Linode_Monitoring { * @returns {Promise} */ enableServiceMonitor(serviceID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .enableServiceMonitor(serviceID) @@ -62,7 +60,6 @@ class Linode_Monitoring { * @returns {Promise} */ deleteServiceMonitor(serviceID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteServiceMonitor(serviceID) @@ -76,7 +73,6 @@ class Linode_Monitoring { * @returns {Promise} */ createServiceMonitor(data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createServiceMonitor(data) @@ -91,7 +87,6 @@ class Linode_Monitoring { * @returns {Promise} */ updateServiceMonitor(monitorID, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateServiceMonitor(monitorID, data) @@ -106,7 +101,6 @@ class Linode_Monitoring { * @returns {Promise} */ getCredentials(params = undefined, filters = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getCredentials(params, filters) @@ -121,7 +115,6 @@ class Linode_Monitoring { * @returns {Promise} */ updateCredential(credentialID, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateCredential(credentialID, data) @@ -135,7 +128,6 @@ class Linode_Monitoring { * @returns {Promise} */ deleteCredential(credentialID) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteCredential(credentialID) diff --git a/packages/linode-plugin/network/linode-DNS.js b/packages/linode-plugin/network/linode-DNS.js index 215b4427..a3c1d066 100644 --- a/packages/linode-plugin/network/linode-DNS.js +++ b/packages/linode-plugin/network/linode-DNS.js @@ -6,12 +6,13 @@ class Linode_DNS { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); } /** * Trigers the getDomains function of DNSLinodeClass @@ -20,7 +21,6 @@ class Linode_DNS { * @returns {Promise} */ getDomains(params = undefined, filter = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getDomains(params, filter) @@ -34,7 +34,6 @@ class Linode_DNS { * @returns {Promise} */ getDomain(domainId) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getDomain(domainId) @@ -48,7 +47,6 @@ class Linode_DNS { * @returns {Promise} */ createDomain(data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createDomain(data) @@ -63,7 +61,6 @@ class Linode_DNS { * @returns {Promise} */ updateDomain(domainId, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateDomain(domainId, data) @@ -77,7 +74,6 @@ class Linode_DNS { * @returns {Promise} */ deleteDomain(domainId) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteDomain(domainId) @@ -92,7 +88,6 @@ class Linode_DNS { * @returns {Promise} */ cloneDomain(domainId, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .cloneDomain(domainId, data) diff --git a/packages/linode-plugin/network/linode-loadBalancer.js b/packages/linode-plugin/network/linode-loadBalancer.js index bdcce93e..7af0d984 100644 --- a/packages/linode-plugin/network/linode-loadBalancer.js +++ b/packages/linode-plugin/network/linode-loadBalancer.js @@ -6,12 +6,13 @@ class Linode_LoadBalancer { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); } /** * Trigers the getNodeBalancers function of LoadBalancerLinodeClass @@ -20,7 +21,6 @@ class Linode_LoadBalancer { * @returns {Promise} */ list(params = undefined, filters = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getNodeBalancers(params, filters) @@ -35,7 +35,6 @@ class Linode_LoadBalancer { * @returns {Promise} */ update(nodeBalancerId, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateNodeBalancer(nodeBalancerId, data) @@ -49,7 +48,6 @@ class Linode_LoadBalancer { * @returns {Promise} */ create(data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createNodeBalancer(data) @@ -63,7 +61,6 @@ class Linode_LoadBalancer { * @returns {Promise} */ delete(nodeBalancerId) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteNodeBalancer(nodeBalancerId) diff --git a/packages/linode-plugin/storage/linode-blockStorage.js b/packages/linode-plugin/storage/linode-blockStorage.js index a4d93e6d..29846fc6 100644 --- a/packages/linode-plugin/storage/linode-blockStorage.js +++ b/packages/linode-plugin/storage/linode-blockStorage.js @@ -6,12 +6,13 @@ class Linode_BlockStorage { /** * - * @param {module} do Linode SDK - * @param {object} options SDK options + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token */ constructor(linodeSdk, linodeToken) { this._linode = linodeSdk; this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); } /** * Trigers the getVolumes function of BlockStorageLinodeClass @@ -20,7 +21,6 @@ class Linode_BlockStorage { * @returns {Promise} */ list(params = undefined, filters = undefined) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .getVolumes(params, filters) @@ -34,7 +34,6 @@ class Linode_BlockStorage { * @returns {Promise} */ delete(volumeId) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .deleteVolume(volumeId) @@ -49,7 +48,6 @@ class Linode_BlockStorage { * @returns {Promise} */ update(volumeId, data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .updateVolume(volumeId, data) @@ -63,7 +61,6 @@ class Linode_BlockStorage { * @returns {Promise} */ create(data) { - this._linode.setToken(this._linodeToken); return new Promise((resolve, reject) => { this._linode .createVolume(data) diff --git a/packages/linode-plugin/storage/linode-storageBucket.js b/packages/linode-plugin/storage/linode-storageBucket.js new file mode 100644 index 00000000..54b7b993 --- /dev/null +++ b/packages/linode-plugin/storage/linode-storageBucket.js @@ -0,0 +1,101 @@ +/*This is an auto generated class, please do not change.*/ +/** + * Class to create a StorageBucketLinodeClass object + * @category Linode + */ +class Linode_StorageBucket { + /** + * + * @param {module} linodeSdk Linode SDK + * @param {string} linodeToken Linode Token + */ + constructor(linodeSdk, linodeToken) { + this._linode = linodeSdk; + this._linodeToken = linodeToken; + this._linode.setToken(this._linodeToken); + } + /** + * Trigers the getBucket function of StorageBucketLinodeClass + * @param {StringKeyword} clusterId - Data required for getBucket + * @param {StringKeyword} bucketName - Data required for getBucket + * @returns {Promise} + */ + get(clusterId, bucketName) { + return new Promise((resolve, reject) => { + this._linode + .getBucket(clusterId, bucketName) + .then(data => resolve(data)) + .catch(err => reject(err)); + }); + } + /** + * Trigers the getBuckets function of StorageBucketLinodeClass + * @param {Params} params - Data required for getBuckets + * @param {Filter} filters - Data required for getBuckets + * @returns {Promise} + */ + list(params = undefined, filters = undefined) { + return new Promise((resolve, reject) => { + this._linode + .getBuckets(params, filters) + .then(data => resolve(data)) + .catch(err => reject(err)); + }); + } + /** + * Trigers the createBucket function of StorageBucketLinodeClass + * @param {ObjectStorageBucketRequestPayload} data - Data required for createBucket + * @returns {Promise} + */ + create(data) { + return new Promise((resolve, reject) => { + this._linode + .createBucket(data) + .then(data => resolve(data)) + .catch(err => reject(err)); + }); + } + /** + * Trigers the deleteBucket function of StorageBucketLinodeClass + * @param {ObjectStorageDeleteBucketRequestPayload} {cluster,label} - Data required for deleteBucket + * @returns {Promise} + */ + delete({ cluster, label }) { + return new Promise((resolve, reject) => { + this._linode + .deleteBucket({ cluster, label }) + .then(data => resolve(data)) + .catch(err => reject(err)); + }); + } + /** + * Trigers the getBucketAccess function of StorageBucketLinodeClass + * @param {StringKeyword} clusterId - Data required for getBucketAccess + * @param {StringKeyword} bucketName - Data required for getBucketAccess + * @returns {Promise} + */ + getBucketAccess(clusterId, bucketName) { + return new Promise((resolve, reject) => { + this._linode + .getBucketAccess(clusterId, bucketName) + .then(data => resolve(data)) + .catch(err => reject(err)); + }); + } + /** + * Trigers the updateBucketAccess function of StorageBucketLinodeClass + * @param {StringKeyword} clusterId - Data required for updateBucketAccess + * @param {StringKeyword} bucketName - Data required for updateBucketAccess + * @param {ObjectStorageBucketAccessRequest} data - Data required for updateBucketAccess + * @returns {Promise} + */ + updateBucketAccess(clusterId, bucketName, data) { + return new Promise((resolve, reject) => { + this._linode + .updateBucketAccess(clusterId, bucketName, data) + .then(data => resolve(data)) + .catch(err => reject(err)); + }); + } +} +module.exports = Linode_StorageBucket; diff --git a/packages/oracle-plugin/compute/oci-kubernetes.js b/packages/oracle-plugin/compute/oci-kubernetes.js index 3efe8d9a..f2a468c8 100644 --- a/packages/oracle-plugin/compute/oci-kubernetes.js +++ b/packages/oracle-plugin/compute/oci-kubernetes.js @@ -6,12 +6,13 @@ class Oracle_Kubernetes { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.ContainerEngineClient( + this._containerEngineClient = this._oci.ContainerEngineClient( params, clientConfiguration ); diff --git a/packages/oracle-plugin/database/oci-RDBMS.js b/packages/oracle-plugin/database/oci-RDBMS.js index cd2dbaeb..4032123f 100644 --- a/packages/oracle-plugin/database/oci-RDBMS.js +++ b/packages/oracle-plugin/database/oci-RDBMS.js @@ -6,12 +6,13 @@ class Oracle_RDBMS { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.DbSystemClient( + this._dbSystemClient = this._oci.DbSystemClient( params, clientConfiguration ); diff --git a/packages/oracle-plugin/database/oci-noSql.js b/packages/oracle-plugin/database/oci-noSql.js index 2d8f73db..d049fbfd 100644 --- a/packages/oracle-plugin/database/oci-noSql.js +++ b/packages/oracle-plugin/database/oci-noSql.js @@ -6,12 +6,13 @@ class Oracle_NoSql { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.NosqlClient(params, clientConfiguration); + this._nosqlClient = this._oci.NosqlClient(params, clientConfiguration); } /** * Trigers the createTable function of NosqlClient diff --git a/packages/oracle-plugin/devops/oci-devops.js b/packages/oracle-plugin/devops/oci-devops.js index d8563f82..f0943636 100644 --- a/packages/oracle-plugin/devops/oci-devops.js +++ b/packages/oracle-plugin/devops/oci-devops.js @@ -6,12 +6,13 @@ class Oracle_Devops { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.DevopsClient( + this._devopsClient = this._oci.DevopsClient( params, clientConfiguration ); diff --git a/packages/oracle-plugin/management/oci-keyManagement.js b/packages/oracle-plugin/management/oci-keyManagement.js index 0c83bcc8..49c34874 100644 --- a/packages/oracle-plugin/management/oci-keyManagement.js +++ b/packages/oracle-plugin/management/oci-keyManagement.js @@ -6,12 +6,13 @@ class Oracle_KeyManagement { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.KmsManagementClient( + this._kmsManagementClient = this._oci.KmsManagementClient( params, clientConfiguration ); diff --git a/packages/oracle-plugin/management/oci-notificationService.js b/packages/oracle-plugin/management/oci-notificationService.js index e881d089..0bc11a1b 100644 --- a/packages/oracle-plugin/management/oci-notificationService.js +++ b/packages/oracle-plugin/management/oci-notificationService.js @@ -6,12 +6,13 @@ class Oracle_NotificationService { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.NotificationDataPlaneClient( + this._notificationDataPlaneClient = this._oci.NotificationDataPlaneClient( params, clientConfiguration ); diff --git a/packages/oracle-plugin/network/oci-DNS.js b/packages/oracle-plugin/network/oci-DNS.js index 934c277e..52cd67f9 100644 --- a/packages/oracle-plugin/network/oci-DNS.js +++ b/packages/oracle-plugin/network/oci-DNS.js @@ -6,12 +6,13 @@ class Oracle_DNS { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.DnsClient(params, clientConfiguration); + this._dnsClient = this._oci.DnsClient(params, clientConfiguration); } /** * Trigers the createZone function of DnsClient diff --git a/packages/oracle-plugin/network/oci-loadBalancer.js b/packages/oracle-plugin/network/oci-loadBalancer.js index fdc04bd4..21faafa6 100644 --- a/packages/oracle-plugin/network/oci-loadBalancer.js +++ b/packages/oracle-plugin/network/oci-loadBalancer.js @@ -6,12 +6,13 @@ class Oracle_LoadBalancer { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.LoadBalancerClient( + this._loadBalancerClient = this._oci.LoadBalancerClient( params, clientConfiguration ); diff --git a/packages/oracle-plugin/storage/oci-archivalStorage.js b/packages/oracle-plugin/storage/oci-archivalStorage.js index 5ee149d6..fe306c87 100644 --- a/packages/oracle-plugin/storage/oci-archivalStorage.js +++ b/packages/oracle-plugin/storage/oci-archivalStorage.js @@ -6,12 +6,13 @@ class Oracle_ArchivalStorage { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.ObjectStorageClient( + this._objectStorageClient = this._oci.ObjectStorageClient( params, clientConfiguration ); diff --git a/packages/oracle-plugin/storage/oci-blockStorage.js b/packages/oracle-plugin/storage/oci-blockStorage.js index 564157f5..26dc83ac 100644 --- a/packages/oracle-plugin/storage/oci-blockStorage.js +++ b/packages/oracle-plugin/storage/oci-blockStorage.js @@ -6,12 +6,13 @@ class Oracle_BlockStorage { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.BlockstorageClient( + this._blockstorageClient = this._oci.BlockstorageClient( params, clientConfiguration ); diff --git a/packages/oracle-plugin/storage/oci-storageBucket.js b/packages/oracle-plugin/storage/oci-storageBucket.js index d275871b..b7d643ed 100644 --- a/packages/oracle-plugin/storage/oci-storageBucket.js +++ b/packages/oracle-plugin/storage/oci-storageBucket.js @@ -6,12 +6,13 @@ class Oracle_StorageBucket { /** * - * @param {module} do Oracle SDK - * @param {object} options SDK options + * @param {module} ocisdk Oracle SDK + * @param {object} params SDK params + * @param {string} clientConfiguration SDK ClientConfiguration */ constructor(ocisdk, params, clientConfiguration) { this._oci = ocisdk._sdkFileName; - this._sdkclassName = this._oci.ObjectStorageClient( + this._objectStorageClient = this._oci.ObjectStorageClient( params, clientConfiguration );