# Generating a Pulumi Provider from an OpenAPI Spec

DevFeed: [Generating a Pulumi Provider from an OpenAPI Spec](<https://devfeed.tech/articles/generating-a-pulumi-provider-from-an-openapi-spec-19003.md>)

Original publisher: [Read original article](<https://www.pulumi.com/blog/generating-a-pulumi-provider-from-an-openapi-spec/>)

Author: Luke Ward

Published: 2026-05-28T00:00:00Z

Content type: release

Language: en

Sources: [Pulumi](<https://devfeed.tech/sources/pulumi.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Infrastructure as code](<https://devfeed.tech/topics/infrastructure-as-code.md>), [API](<https://devfeed.tech/topics/api.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [iac](<https://devfeed.tech/tags/iac.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [product](<https://devfeed.tech/tags/product.md>), [pulumi](<https://devfeed.tech/tags/pulumi.md>), [pulumi-cloud](<https://devfeed.tech/tags/pulumi-cloud.md>), [release](<https://devfeed.tech/tags/release.md>)

## AI overview

Pulumi announces version 1.0 of the Pulumi Service Provider, generated from the Pulumi Cloud OpenAPI specification. The release expands the provider's resource surface and adds infrastructure-as-code support for fine-grained RBAC, Pulumi IDP catalogs, and audit-log export.

## Source excerpt

Today, we are announcing v1.0 of the Pulumi Service Provider: a major milestone in managing Pulumi Cloud with Pulumi itself. The provider is now generated directly from the Pulumi Cloud OpenAPI specification, unlocking a dramatically expanded pulumiservice:api/* resource surface and enabling Pulumi Cloud capabilities to become available in the provider faster than ever before. This release also brings several major new capabilities to infrastructure as code, including fine-grained RBAC as code, Pulumi IDP as code, and audit log export as IaC. Together, these changes make the Pulumi Service Provider the most powerful and extensible way yet to manage and automate your Pulumi Cloud infrastructure. Why this matters for users Historically, every new Pulumi Cloud feature implied a follow-up PR in the provider before that feature could be used from a Pulumi program. The provider was always slightly behind the API it wrapped, and entirely new capability areas could take months to land. The api/* surface changes both timelines. Because the schema is derived from the OpenAPI spec at runtime: Whole new resource families land in the provider the same release they reach Pulumi Cloud. New fields, features, and enum values on existing resources show up across all five language SDKs the soon after they appear in the spec. What's new in v1.0 v1.0 lifts whole capability areas of Pulumi Cloud into the api/* surface, not just incremental field additions. None of it required bespoke provider code. Fine-grained RBAC as code. Custom roles, organization membership, and team role assignments are now managed resources. For example, defining a read-only role and assigning it to a team: const readOnly = new ps.api.Role("readOnly", { orgName: "acme", name: "stack-reader", description: "Read-only access to stacks across the org.", uxPurpose: "role", details: { __type: "PermissionDescriptorAllow", permissions: ["stack:read", "stack:list"], }, }); new ps.api.teams.Role("readOnlyForPlatform", { org