github.com/ezbercih/terraform@v0.1.1-0.20140729011846-3c33865e0839/website/source/docs/plugins/provider.html.md (about) 1 --- 2 layout: "docs" 3 page_title: "Provider Plugins" 4 sidebar_current: "docs-plugins-provider" 5 --- 6 7 # Provider Plugins 8 9 A provider in Terraform is responsible for the lifecycle of a resource: 10 create, read, update, delete. An example of a provider is AWS, which 11 can manage resources of type `aws_instance`, `aws_eip`, `aws_elb`, etc. 12 13 The primary reasons to care about provider plugins are: 14 15 * You want to add a new resource type to an existing provider. 16 17 * You want to write a completely new provider for managing resource 18 types in a system not yet supported. 19 20 * You want to write a completely new provider for custom, internal 21 systems such as a private inventory management system. 22 23 <div class="alert alert-block alert-warning"> 24 <strong>Advanced topic!</strong> Plugin development is a highly advanced 25 topic in Terraform, and is not required knowledge for day-to-day usage. 26 If you don't plan on writing any plugins, we recommend not reading 27 this section of the documentation. 28 </div> 29 30 ## Coming Soon! 31 32 The documentation for writing custom providers is coming soon. In the 33 mean time, you can look at how our 34 [built-in providers are written](https://github.com/hashicorp/terraform/tree/master/builtin). 35 We recommend copying as much as possible from our providers when working 36 on yours. 37 38 We're also rapidly working on improving the high-level helpers for 39 writing providers. We expect that writing providers will become much 40 easier very shortly, and acknowledge that writing them now is not the 41 easiest thing to do.