{ "info": { "author": "Kraken Technologies Limited", "author_email": "talent@octopus.energy", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Terraform Cloud Client\n\nAn API client for HashiCorp's Terraform Cloud\n\n## Installation\n\n```\n$ pip install terraform-cloud-client\n```\n\nThis client is only tested on python 3.7\n\n## Usage as a library\n\nSet up:\n\n```python\n>>> import tfc\n>>> client = tfc.TerraformClient(\"my_api_token\", \"my_organization\", \"my_workspace\")\n```\n\nGet Terraform variables:\n\n```python\n>>> variables = client.get_variables()\n>>> variables\n{\n 'my_username': ,\n 'my_password': ,\n}\n>>> username_variable = variables['my_username']\n>>> username_variable.id\n'var-someid1'\n>>> username_variable.name\n'my_username'\n>>> username_variable.value\n'john_doe'\n```\n\nChange the value of a variable:\n\n```python\n>>> client.update_variable(variable_id=username_variable.id, new_value='jane_doe')\n```\n\nTrigger a run:\n\n```python\n>>> run = client.create_run('My message')\n>>> run.id\n'run-someid'\n>>> run.url # Go here in a web browser to view the run\n'https://app.terraform.io/app/my_organization/workspaces/my_workspace/runs/run-someid'\n```\n\n## Usage as a command line tool\n\nInstalling this via pip also installs a `tfc` command line tool\n\n```\n$ tfc --help\nusage: tfc [-h] [--message MESSAGE]\n organization workspace [name=value [name=value ...]]\n\nTrigger a Terraform Cloud run\n\npositional arguments:\n organization The name of your organization in Terraform Cloud\n workspace The name of your workspace in Terraform Cloud\n name=value Set terraform variable NAME to VALUE before creating\n the run\n\noptional arguments:\n -h, --help show this help message and exit\n --message MESSAGE, -m MESSAGE\n The message to be associated with this run\n\nPut your API token in the TERRAFORM_CLOUD_TOKEN environment variable\n```\n\nSo for example:\n\n```\n$ tfc my_organization my_workspace foo=baz --message=\"Reticulating splines\"\nUpdated 'foo' from 'bar' to 'baz'\nCreated run run-g6SmSsLVKg71yeNw - check status at: https://app.terraform.io/app/my_organization/workspaces/my_workspace/runs/run-g6SmSsLVKg71yeNw\n```\n\nThe message argument can contain variables which are expanded at runtime. These follow the same\nformatting rules as Python's `str.format(...)`. The variables which are currently defined are:\n\n- git_repository\n- git_branch\n- git_commit_subject\n- git_commit_author\n\nSo for example:\n\n```\n$ tfc my_organization my_workspace foo=baz --message=\"{git_commit_subject} (author: {git_commit_author}, branch: {git_branch}, repo: {git_repository})\"\n```\n\nmight create a run with the message:\n\n```\nMy commit message (author: Joe Bloggs, branch: my-branch, repo: terraform-cloud-client)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/octoenergy/terraform-cloud-client", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "terraform-cloud-client", "package_url": "https://pypi.org/project/terraform-cloud-client/", "platform": "", "project_url": "https://pypi.org/project/terraform-cloud-client/", "project_urls": { "Homepage": "https://github.com/octoenergy/terraform-cloud-client" }, "release_url": "https://pypi.org/project/terraform-cloud-client/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "A client for HashiCorp Terraform Cloud", "version": "0.0.3" }, "last_serial": 5792243, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "3c2063163da1e612b82e793989fdb32c", "sha256": "f221a5dfea1a5f138394c31aa0212451f6123b5a8873205bc5aec8875e42554e" }, "downloads": -1, "filename": "terraform_cloud_client-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3c2063163da1e612b82e793989fdb32c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6123, "upload_time": "2019-09-06T11:12:14", "url": "https://files.pythonhosted.org/packages/ee/47/1b135960ab5d60c58205533decd503b87dcced5e1419ef6b17643efd7e48/terraform_cloud_client-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e838428c509402a43b66d0eaa8f070b", "sha256": "3550007923f4fc87efa980da1006f6cca04b8a12a7b34f167d5cc7de21ccded9" }, "downloads": -1, "filename": "terraform-cloud-client-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8e838428c509402a43b66d0eaa8f070b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4209, "upload_time": "2019-09-06T11:12:17", "url": "https://files.pythonhosted.org/packages/b2/dd/b54a69f20030421c3c78e38c911d2b0ee26d7cdb245044e5dc9a6e173a05/terraform-cloud-client-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "a0b36df0552db2f0dcbe5a396553597e", "sha256": "ab171a2112e1be94bba36816a2be40e3c49246b05fe57b90f9c3974a8e76ddab" }, "downloads": -1, "filename": "terraform_cloud_client-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a0b36df0552db2f0dcbe5a396553597e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7171, "upload_time": "2019-09-06T13:26:13", "url": "https://files.pythonhosted.org/packages/3c/ce/32e8cc98e9f94531448ff6183bafa2d4ef887aa3b1afaf814fb64af6f3dc/terraform_cloud_client-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f2df2927628db95972ea0cec8c90f45", "sha256": "c0094ba1befcb874a811a413359bacb01b227bc80169da59572e21298be9b835" }, "downloads": -1, "filename": "terraform-cloud-client-0.0.3.tar.gz", "has_sig": false, "md5_digest": "0f2df2927628db95972ea0cec8c90f45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5033, "upload_time": "2019-09-06T13:26:15", "url": "https://files.pythonhosted.org/packages/e4/e8/25851569c58dc2e95d73b3c266e7e67a921e28a5e2d6a603a116c25b9474/terraform-cloud-client-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a0b36df0552db2f0dcbe5a396553597e", "sha256": "ab171a2112e1be94bba36816a2be40e3c49246b05fe57b90f9c3974a8e76ddab" }, "downloads": -1, "filename": "terraform_cloud_client-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a0b36df0552db2f0dcbe5a396553597e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7171, "upload_time": "2019-09-06T13:26:13", "url": "https://files.pythonhosted.org/packages/3c/ce/32e8cc98e9f94531448ff6183bafa2d4ef887aa3b1afaf814fb64af6f3dc/terraform_cloud_client-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f2df2927628db95972ea0cec8c90f45", "sha256": "c0094ba1befcb874a811a413359bacb01b227bc80169da59572e21298be9b835" }, "downloads": -1, "filename": "terraform-cloud-client-0.0.3.tar.gz", "has_sig": false, "md5_digest": "0f2df2927628db95972ea0cec8c90f45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5033, "upload_time": "2019-09-06T13:26:15", "url": "https://files.pythonhosted.org/packages/e4/e8/25851569c58dc2e95d73b3c266e7e67a921e28a5e2d6a603a116c25b9474/terraform-cloud-client-0.0.3.tar.gz" } ] }