<commit_before>---
layout: "guides"
page_title: "Terraform Provider Development Program"
sidebar_current: "guides-terraform-provider-development-program"
description: This guide is intended for vendors who're interested in having their platform supported by Teraform. The guide walks vendors through the steps involved in creating a provider and applying for it to be included with Terraform.
---

# Terraform Provider Development Program

The Terraform Provider Development Program allows vendors to build
Terraform providers that are officially approved and tested by HashiCorp and
listed on the official Terraform website. The program is intended to be largely
self-serve, with links to information sources, clearly defined steps, and
checkpoints.

-> **Building your own provider?** If you're building your own provider and
aren't interested in having HashiCorp officially approve and regularly test
the provider, refer to the
[Writing Custom Providers guide](/guides/writing-custom-terraform-providers.html).

## What is a Terraform Provider?

Terraform is used to create, manage, and manipulate infrastructure resources.
Examples of resources include physical machines, VMs, network switches, containers, etc.
Almost any infrastructure noun can be represented as a resource in Terraform.

A provider is responsible for understanding API interactions with the underlying
infrastructure like a cloud (AWS, GCP, Azure), a PaaS service (Heroku), a SaaS
(service DNSimple, CloudFlare), or on-prem resources (vSphere). It then exposes
these as resources users can code to. Terraform presently supports more than
70 providers, a number that has more than doubled in the past 12 months.

All providers integrate into and operate with Terraform exactly the same way.
The table below is intended to help users understand who develops, maintains
and tests a particular provider.

![Provider Engagement Table](/assets/images/docs/engage-table.png)

-> **Note:** This document is primarily intended for the "HashiCorp/Vendors" row in
the table above. Community contributors who’re interested in contributing to
existing providers or building new providers should refer to the
[Writing Custom Providers guide](/guides/writing-custom-terraform-providers.html).

## Provider Development Process

The provider development process is divided into six steps below. By following
these steps, providers can be developed alongside HashiCorp to ensure new
providers are able to be published in Terraform as quickly as possible.

![Provider Development Process](/assets/images/docs/process.png)

1. **Engage**:    Initial contact between vendor and HashiCorp
2. **Enable**:    Information and articles to aid with the provider development
3. **Dev/Test**:  Provider development and test process
4. **Review**:    HashiCorp code review and acceptance tests (iterative process)<commit_msg>website: Fix typo in the provider development program guide<commit_after>---
layout: "guides"
page_title: "Terraform Provider Development Program"
sidebar_current: "guides-terraform-provider-development-program"
description: This guide is intended for vendors who're interested in having their platform supported by Teraform. The guide walks vendors through the steps involved in creating a provider and applying for it to be included with Terraform.
---

# Terraform Provider Development Program

The Terraform Provider Development Program allows vendors to build
Terraform providers that are officially approved and tested by HashiCorp and
listed on the official Terraform website. The program is intended to be largely
self-serve, with links to information sources, clearly defined steps, and
checkpoints.

-> **Building your own provider?** If you're building your own provider and
aren't interested in having HashiCorp officially approve and regularly test
the provider, refer to the
[Writing Custom Providers guide](/guides/writing-custom-terraform-providers.html).

## What is a Terraform Provider?

Terraform is used to create, manage, and manipulate infrastructure resources.
Examples of resources include physical machines, VMs, network switches, containers, etc.
Almost any infrastructure noun can be represented as a resource in Terraform.

A provider is responsible for understanding API interactions with the underlying
infrastructure like a cloud (AWS, GCP, Azure), a PaaS service (Heroku), a SaaS
service (DNSimple, CloudFlare), or on-prem resources (vSphere). It then exposes
these as resources users can code to. Terraform presently supports more than
70 providers, a number that has more than doubled in the past 12 months.

All providers integrate into and operate with Terraform exactly the same way.
The table below is intended to help users understand who develops, maintains
and tests a particular provider.

![Provider Engagement Table](/assets/images/docs/engage-table.png)

-> **Note:** This document is primarily intended for the "HashiCorp/Vendors" row in
the table above. Community contributors who’re interested in contributing to
existing providers or building new providers should refer to the
[Writing Custom Providers guide](/guides/writing-custom-terraform-providers.html).

## Provider Development Process

The provider development process is divided into six steps below. By following
these steps, providers can be developed alongside HashiCorp to ensure new
providers are able to be published in Terraform as quickly as possible.

![Provider Development Process](/assets/images/docs/process.png)

1. **Engage**:    Initial contact between vendor and HashiCorp
2. **Enable**:    Information and articles to aid with the provider development
3. **Dev/Test**:  Provider development and test process
4. **Review**:    HashiCorp code review and acceptance tests (iterative process)
{'fraction_non_alphanumeric': 0.056881051175656984, 'fraction_numerical': 0.0027662517289073307, 'mean_word_length': 5.294885745375408, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3226422', 'n_tokens_mistral': 1414, 'n_tokens_neox': 1339, 'n_words': 741}