# Customize Terraform Provider

Speakeasy provides various extensions and configurations to customize your Terraform provider. These customizations allow you to:

- Map API entities and operations to Terraform resources
- Enable provider-level configurations and environment values
- Customize validation and plan modification
- And more

Select a topic from the navigation to learn more about specific customization options.

## Available Customization Options

### [Entity Mapping](/docs/terraform/entity-mapping)

Learn how to map your API entities to Terraform resources and specify CRUD operations.

### [Provider Configuration](/docs/terraform/provider-configuration)

Configure environment values and manage custom resources.

### [Resource Configuration](/docs/terraform/resource-configuration)

Configure resource descriptions and managed resource versioning.

### [Property Customization](/docs/terraform/property-customization)

Customize how API properties are mapped to Terraform attributes and manage property behavior.

### [Validation and Dependencies](/docs/terraform/validation-dependencies)

Add custom validation logic and manage attribute dependencies.

### [Plan Modification](/docs/terraform/plan-modification)

Customize Terraform plan behavior and resource versioning.

### [Advanced Features](/docs/terraform/advanced-features)

Access advanced customization options for fine-grained control.

### [Schema Keywords](/docs/terraform/schema-keywords)

Learn about supported OpenAPI schema keywords and their behavior.

### [Common Troubleshooting & Recipes](/docs/terraform/common-troubleshooting)

Learn about overcoming API design incompatibilities when generating Terraform providers with Speakeasy.

### [Configuration Reference](/docs/speakeasy-reference/generation/terraform-config)

Complete reference for all available Terraform configuration options in the `gen.yaml` file.
