Welcome to Pyvider Documentation¶
Build Terraform providers in Python — full Protocol v6, decorator-based API, async-first.
🤖 AI-Generated Content
This documentation was generated with AI assistance and is still being audited. Some, or potentially a lot, of this information may be inaccurate. Learn more.
Current Status
Pyvider is in active development. See the announcement banner above for current version status.
Pyvider is a Python framework that enables you to build Terraform providers using pure Python. By combining Python's expressiveness with Terraform's infrastructure management capabilities, Pyvider makes provider development accessible to the Python ecosystem while maintaining full compatibility with Terraform's Plugin Protocol v6.
Quick Start¶
📦 Install
Get Pyvider installed in minutes
Install Pyvider →🚀 5-Minute Tutorial
Build your first provider
Quick Start Guide →📚 Components
Working code you can use today
Browse Components →🤔 Why Pyvider?
Understand the vision
Design Philosophy →Documentation Structure¶
🚀 Getting Started¶
- Installation - Set up Pyvider
- Quick Start - Build your first provider in 5 minutes
- Pyvider Components - Ready-to-use working examples
📖 Developer Guides¶
Build production-focused providers:
- Creating Providers - Provider configuration
- Creating Resources - CRUD operations
- Creating Data Sources - Read-only data
- Creating Functions - Transformations
- Testing Providers - Testing strategies
- Best Practices - Production patterns
🏛️ Core Concepts¶
Understand Pyvider's foundation:
- Architecture - System design and data flow
- Design Philosophy - Vision and principles
- Component Model - Hub-based discovery
- Schema System - Type-safe data modeling
📦 Schema System¶
- Overview - Schema introduction
- Types - Available schema types
- Attributes - Attribute definitions
- Blocks - Nested blocks
- Validators - Input validation
📘 API Reference¶
- Schema API - Attributes, blocks, and validation
- CLI Commands - Command-line interface
- Common Types - Type system reference
🤝 Contributing¶
- Contribution Guidelines - How to contribute
- Code of Conduct - Community standards
Part of the provide.io Ecosystem¶
This project is part of a larger ecosystem of tools for Python and Terraform development.
Understand how provide-foundation, pyvider, flavorpack, and other projects work together.
Prerequisites¶
- Python 3.11+ installed
- Basic understanding of Terraform concepts
- Familiarity with Python type hints and attrs (helpful but not required)
📦 Ready-to-Use Components¶
The pyvider-components repository provides production-focused components:
- Resources: file_content, local_directory, timed_token
- Data Sources: env_variables, file_info, http_api, lens_jq
- Functions: String manipulation, numeric operations, JQ transformations
Install with: uv add pyvider-components
💬 Community & Support¶
- GitHub Issues: Report bugs or request features
- GitHub Discussions: Ask questions and share ideas
📈 Project Status¶
- Version: 0.3.0 (Pre-release)
- Protocol: Terraform Plugin Protocol v6
- Python: 3.11+
- License: Apache 2.0
- Status: Alpha - Under Active Development
Made with ❤️ by the team at Provide