Terraform Cloud Client
An API client for HashiCorp's Terraform Cloud
Installation
$ pip install terraform-cloud-client
This client is only tested on python 3.7
Usage as a library
Set up:
>>> import tfc
>>> client = tfc.TerraformClient("my_api_token", "my_organization", "my_workspace")
Get Terraform variables:
>>> variables = client.get_variables()
>>> variables
{
'my_username': <TerraformVariable id='var-someid1', name='my_username', value='john_doe'>,
'my_password': <TerraformVariable id='var-someid2', name='my_password', sensitive>,
}
>>> username_variable = variables['my_username']
>>> username_variable.id
'var-someid1'
>>> username_variable.name
'my_username'
>>> username_variable.value
'john_doe'
Change the value of a variable:
>>> client.update_variable(variable_id=username_variable.id, new_value='jane_doe')
Trigger a run:
>>> run = client.create_run('My message')
>>> run.id
'run-someid'
>>> run.url # Go here in a web browser to view the run
'https://app.terraform.io/app/my_organization/workspaces/my_workspace/runs/run-someid'
Usage as a command line tool
Installing this via pip also installs a tfc command line tool
$ tfc --help
usage: tfc [-h] [--message MESSAGE]
organization workspace [name=value [name=value ...]]
Trigger a Terraform Cloud run
positional arguments:
organization The name of your organization in Terraform Cloud
workspace The name of your workspace in Terraform Cloud
name=value Set terraform variable NAME to VALUE before creating
the run
optional arguments:
-h, --help show this help message and exit
--message MESSAGE, -m MESSAGE
The message to be associated with this run
Put your API token in the TERRAFORM_CLOUD_TOKEN environment variable
So for example:
$ tfc my_organization my_workspace foo=baz --message="Reticulating splines"
Updated 'foo' from 'bar' to 'baz'
Created run run-g6SmSsLVKg71yeNw - check status at: https://app.terraform.io/app/my_organization/workspaces/my_workspace/runs/run-g6SmSsLVKg71yeNw
The message argument can contain variables which are expanded at runtime. These follow the same
formatting rules as Python's str.format(...). The variables which are currently defined are:
- git_repository
- git_branch
- git_commit_subject
- git_commit_author
So for example:
$ tfc my_organization my_workspace foo=baz --message="{git_commit_subject} (author: {git_commit_author}, branch: {git_branch}, repo: {git_repository})"
might create a run with the message:
My commit message (author: Joe Bloggs, branch: my-branch, repo: terraform-cloud-client)
Metadata
Release files for terraform-cloud-client 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| terraform-cloud-client-0.0.3.tar.gz | 5.0 kB | Without provenance | Details for terraform-cloud-client-0.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| terraform_cloud_client-0.0.3-py3-none-any.whl | Python 3 | none | any | Details for terraform_cloud_client-0.0.3-py3-none-any.whl |
Total release size: 12.2 kB
Release files / terraform-cloud-client-0.0.3.tar.gz
| Download URL | terraform-cloud-client-0.0.3.tar.gz |
|---|---|
| Size | 5.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c0094ba1befcb874a811a413359bacb01b227bc80169da59572e21298be9b835
|
|
BLAKE2b-256 checksum How to use checksums |
e4e825851569c58dc2e95d73b3c266e7e67a921e28a5e2d6a603a116c25b9474
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3
|
Release files / terraform_cloud_client-0.0.3-py3-none-any.whl
| Download URL | terraform_cloud_client-0.0.3-py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ab171a2112e1be94bba36816a2be40e3c49246b05fe57b90f9c3974a8e76ddab
|
|
BLAKE2b-256 checksum How to use checksums |
3cce32e8cc98e9f94531448ff6183bafa2d4ef887aa3b1afaf814fb64af6f3dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3
|
Security for terraform-cloud-client 0.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.