All Projects → hashicorp → Go Tfe

hashicorp / Go Tfe

Licence: mpl-2.0
Terraform Cloud/Enterprise API Client/SDK in Golang

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Go Tfe

Openapi Sdk Php Client
Official repository of the Alibaba Cloud Client for PHP
Stars: ✭ 206 (+110.2%)
Mutual labels:  cloud, sdk
Cloudinary ios
Cloudinary iOS SDK
Stars: ✭ 133 (+35.71%)
Mutual labels:  cloud, sdk
Cpprestsdk
The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
Stars: ✭ 6,631 (+6666.33%)
Mutual labels:  cloud, sdk
Oci Python Sdk
Oracle Cloud Infrastructure SDK for Python
Stars: ✭ 191 (+94.9%)
Mutual labels:  cloud, sdk
Openapi Sdk Php
Alibaba Cloud SDK for PHP
Stars: ✭ 423 (+331.63%)
Mutual labels:  cloud, sdk
Dorita980
Unofficial iRobot Roomba and Braava (i7/i7+, 980, 960, 900, e5, 690, 675, m6, etc) node.js library (SDK) to control your robot
Stars: ✭ 523 (+433.67%)
Mutual labels:  cloud, sdk
Oci Go Sdk
Go SDK for Oracle Cloud Infrastructure
Stars: ✭ 83 (-15.31%)
Mutual labels:  cloud, sdk
Algoliasearch Client Android
Algolia Search API Client for Android
Stars: ✭ 92 (-6.12%)
Mutual labels:  sdk
Aws Workflows On Github
Workflows for automation of AWS services setup from Github CI/CD
Stars: ✭ 95 (-3.06%)
Mutual labels:  cloud
Stellar Ios Mac Sdk
Stellar SDK for iOS & macOS - Swift, Stellar, Horizon, Soneso
Stars: ✭ 92 (-6.12%)
Mutual labels:  sdk
Cpm8266
Z80-CP/M2.2 emulation on ESP8266 NONOS SDK + the NoSDK from cnlohr
Stars: ✭ 91 (-7.14%)
Mutual labels:  sdk
Kanvas
Make canvas easier to use in Kotlin 😊
Stars: ✭ 93 (-5.1%)
Mutual labels:  sdk
Awesome Gcp Certifications
Google Cloud Platform Certification resources.
Stars: ✭ 1,328 (+1255.1%)
Mutual labels:  cloud
Xr871 Old
XR871 SDK
Stars: ✭ 92 (-6.12%)
Mutual labels:  sdk
Cloudsploit
Cloud Security Posture Management (CSPM)
Stars: ✭ 1,338 (+1265.31%)
Mutual labels:  cloud
Fvm
Flutter Version Management: A simple CLI to manage Flutter SDK versions.
Stars: ✭ 1,293 (+1219.39%)
Mutual labels:  sdk
Opentok Ruby Sdk
OpenTok Server SDK for Ruby
Stars: ✭ 97 (-1.02%)
Mutual labels:  sdk
Nextflow
A DSL for data-driven computational pipelines
Stars: ✭ 1,337 (+1264.29%)
Mutual labels:  cloud
Thumbcloud
Thumbcloud is a file-sharing server to replace your USB thumbdrive.
Stars: ✭ 94 (-4.08%)
Mutual labels:  cloud
Cloud Mta Build Tool
Multi-Target Application (MTA) build tool for Cloud Applications https://sap.github.io/cloud-mta-build-tool
Stars: ✭ 94 (-4.08%)
Mutual labels:  cloud

Terraform Cloud/Enterprise Go Client

Build Status GitHub license GoDoc Go Report Card GitHub issues

The official Go API client for Terraform Cloud/Enterprise.

This client supports the Terraform Cloud V2 API. As Terraform Enterprise is a self-hosted distribution of Terraform Cloud, this client supports both Cloud and Enterprise use cases. In all package documentation and API, the platform will always be stated as 'Terraform Enterprise' - but a feature will be explicitly noted as only supported in one or the other, if applicable (rare).

Note this client is in beta and is subject to change (though it is generally quite stable). We will indicate any breaking changes by releasing new versions. Until the release of v1.0, any minor version changes will indicate possible breaking changes. Patch version changes will be used for both bugfixes and non-breaking changes.

Installation

Installation can be done with a normal go get:

go get -u github.com/hashicorp/go-tfe

Usage

import tfe "github.com/hashicorp/go-tfe"

Construct a new TFE client, then use the various endpoints on the client to access different parts of the Terraform Enterprise API. For example, to list all organizations:

config := &tfe.Config{
	Token: "insert-your-token-here",
}

client, err := tfe.NewClient(config)
if err != nil {
	log.Fatal(err)
}

orgs, err := client.Organizations.List(context.Background(), tfe.OrganizationListOptions{})
if err != nil {
	log.Fatal(err)
}

Documentation

For complete usage of the API client, see the full package docs.

API Coverage

Most of the Terraform Cloud/Enterprise V2 API is supported in this client. Currently, the separate Admin API - applicable only to Terraform Enterprise - is not.

Examples

See the examples directory.

Running tests

See TESTS.md.

Issues and Contributing

If you find an issue with this package, please report an issue. If you'd like, we welcome any contributions. Fork this repository and submit a pull request.

Releases

Documentation updates and test fixes that only touch test files don't require a release or tag. You can just merge these changes into master once they have been approved.

Creating a release

  1. Merge your approved branch into master.
  2. Create a new release in GitHub.
    • Click on "Releases" and then "Draft a new release"

    • Set the tag version to a new tag, using Semantic Versioning as a guideline.

    • Set the target as master.

    • Set the Release title to the tag you created, vX.Y.Z

    • Use the description section to describe why you're releasing and what changes you've made. You should include links to merged PRs

    • Consider using the following headers in the description of your release:

      • BREAKING CHANGES: Use this for any changes that aren't backwards compatible. Include details on how to handle these changes.
      • FEATURES: Use this for any large new features added,
      • ENHANCEMENTS: Use this for smaller new features added
      • BUG FIXES: Use this for any bugs that were fixed.
      • NOTES: Use this section if you need to include any additional notes on things like upgrading, upcoming deprecations, or any other information you might want to highlight.

      Markdown example:

      ENHANCEMENTS
      * Add description of new small feature (#3)[link-to-pull-request]
      
      BUG FIXES
      * Fix description of a bug (#2)[link-to-pull-request]
      * Fix description of another bug (#1)[link-to-pull-request]
      
    • Don't attach any binaries. The zip and tar.gz assets are automatically created and attached after you publish your release.

    • Click "Publish release" to save and publish your release.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].