terraform-provider-edgecast is the official Terraform provider for the Edgecast Platform.
Makefile
contains helper functions to build, install, release, and test the provider.install_win.bat
provides install functionality for Windows environments.main.go
is the entry point. It creates the executable Go binary that Terraform consumes. It uses the Teraform Plugin SDK to return an instance of the provider.
docs
contains markdown auto-generated bytfplugindocs
. This documentation is consumed by the Terraform Registry and can be viewed here.edgecast
is the folder that contains all of the provider and resource Go code.examples
contains example Terraform configuration files to serve as a starting point or as a reference to consumers of this provider. The examples are organized by resource.templates
contains thetfplugindocs
templates from which the documents withindocs
are generated. Templates are optional -tfplugindocs
will create satisfactory docs in most cases without a template. Use a template when you need to fine tune the documentation. Templates are organized by resource similar to theexamples
folder.tools
contains references to any support tools for the repository e.g.tfplugindocs
for Terraform document generation.
edgecast/provider.go
defines the Edgecast provider. Its configuration schema is defined as well as all of the resources it manages. All bootstrapping for the provider occurs here. Most importantly, the raw provider configuration is mapped to aClientConfig
object which is passed to each individual resource's CRUD functions as aninterface{}
parameter.edgecast/api
is deprecated. Do not add new code here. All new resources should use the Edgecast Go SDK. The sole exception is theClientConfig
type, which will eventually be pulled out ofedgecast/api
.edgecast/helper
contains utility code for json, Terraform, etc.edgecast/resources
contains the available resources. They are organized by feature. For example, all WAF resources lie withinedgecast/resources/waf
. Ultimately, these are referenced inedgecast/provider.go
. Each Resource's CRUD function has the provider configuration injected into it via them interface{}
parameter.