terraform-cloud
Version:
Terraform Cloud API wrapper
85 lines (60 loc) • 2.62 kB
Markdown
[](https://www.npmjs.com/package/terraform-cloud)
[](https://github.com/mijailr/terraform-cloud/actions?query=workflow%3ATest+branch%3Amaster)
[](https://codeclimate.com/github/mijailr/terraform-cloud/maintainability)
[](https://codeclimate.com/github/mijailr/terraform-cloud/test_coverage)
[](https://npm.runkit.com/terraform-cloud)
[](https://www.terraform.io/docs/cloud/api/index.html) client for javascript.
> NOTE: This is a work in progress, please review the current implementation.
```sh
yarn add terraform-cloud
npm install terraform-cloud
```
```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
})
```
- [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)
- [ ] Workspaces
- [ ] ...
We would love you to contribute to `terraform-cloud`, pull requests are very welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information.
[](LICENSE)