UNPKG

terraform-cloud

Version:
85 lines (60 loc) 2.62 kB
# terraform-cloud [![@latest](https://img.shields.io/npm/v/terraform-cloud.svg)](https://www.npmjs.com/package/terraform-cloud) [![Build Status](https://github.com/mijailr/terraform-cloud/workflows/Test/badge.svg)](https://github.com/mijailr/terraform-cloud/actions?query=workflow%3ATest+branch%3Amaster) [![Maintainability](https://api.codeclimate.com/v1/badges/a68c0e9a298ae127d7de/maintainability)](https://codeclimate.com/github/mijailr/terraform-cloud/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/a68c0e9a298ae127d7de/test_coverage)](https://codeclimate.com/github/mijailr/terraform-cloud/test_coverage) [![Try terraform-cloud on RunKit](https://badge.runkitcdn.com/terraform-cloud.svg)](https://npm.runkit.com/terraform-cloud) [Terraform Cloud REST API](https://www.terraform.io/docs/cloud/api/index.html) client for javascript. > NOTE: This is a work in progress, please review the current implementation. ## Instalation ```sh yarn add terraform-cloud # With Yarn npm install terraform-cloud # With NPM ``` ## Usage ```ts import { TerraformCloud } from 'terraform-cloud' // Set a your terraform cloud API token const { Account, Plans, Runs } = new TerraformCloud('terraform-api-token') // Make an API call // Get Account Information Account.getDetails().then(account => { // handle account data }) // Update Account Password const updatePasswordRequest = { data: { type: 'user', attributes: { current_password: 'current-password', password: 'new-password', password_confirmation: 'new-password', }, }, } Account.updatePassword(updatePasswordRequest).then(user => { // handle account password update }) Plans.show('plan-id').then(plan => { // handle plan data }) // Runs Runs.show('run-id').then(run => { // handle run data }) // Perform an action over a run ex: (apply, cancel, discard, force-cancel, force-execute) Runs.action('cancel', 'run-id', { data: { comment: 'cancel run by id' } }).then(() => { // handle run action }) ``` ## Current implementation - [x] [Account](https://www.terraform.io/docs/cloud/api/account.html) (100%) - [x] [Runs](https://www.terraform.io/docs/cloud/api/plans.html) (100%) - [x] [Plans](https://www.terraform.io/docs/cloud/api/plans.html) (90%) - **TODO:** [Handle Terraform Plans JsonOutput #17](https://github.com/mijailr/terraform-cloud/issues/17) ## TODO - [ ] Workspaces - [ ] ... ## Contributing We would love you to contribute to `terraform-cloud`, pull requests are very welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information. ## LICENSE [MIT](LICENSE)