Embedding Pulumi with the Automation API
The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI. Conceptually, this can be thought of as encapsulating the functionality of the CLI (pulumi up
, pulumi preview
, pulumi destroy
, pulumi stack init
, etc.) but with more flexibility. It is a strongly typed and safe way to use Pulumi in embedded contexts such as web servers, without requiring invoking the CLI from a shell process.
Automation API allows you to embed Pulumi within your application code, making it easy to create custom experiences on top of Pulumi that are tailored to your use-case, domain, and team.
PATH
environment variable.Getting started
To learn how to use Automation API, see Getting Started with Automation API.
Examples
The following examples demonstrate how to use Automation API in various use cases.
Visit the examples repo for more code examples and links to projects using Automation API.
Languages
Like all of Pulumi, Automation API is available in multiple languages, so you can create applications that use it in TypeScript/JavaScript, Python, Go, and C#.
Automation API supports cross-language implementations where it runs in a program of a different language than the Pulumi programs it manages.
Language | Status | |
---|---|---|
TypeScript | Stable | |
JavaScript | Stable | |
Python | Stable | |
.NET | Stable | |
Go | Stable |
Blog Posts
For more ideas of what’s possible with Automation API, check out some of the ways we and community members use it in different use cases.
Known issues
The GA release of Automation API is stable; however, we know bugs can pop up. We are tracking a list of known issues and encourage you to file additional issues as you find them.
Thank you for your feedback!
If you have a question about how to use Pulumi, reach out in Community Slack.
Open an issue on GitHub to report a problem or suggest an improvement.