SuperAPI AI 工具集

generate-terraform-provider

部署与运维

查看项目

更新于 10-16 10:22

技能介绍

用途:当需要用 Speakeasy 从 OpenAPI 规范生成 Terraform provider 时使用。

主要能力:覆盖完整生命周期,包括用实体元数据为规范加注解、把 API 操作映射到 Terraform CRUD 方法、根据 OpenAPI schema 推断 Terraform 类型、配置 workflow.yaml、以及在 Terraform Registry 发布 provider。还涉及自定义、异步轮询、属性定制、计划修改、校验和状态升级等主题。

必要输入:OpenAPI 3.0 或 3.1 规范(本地文件、URL 或 registry 来源)、PascalCase 的 provider 名称、小写包名,以及实体注解(schema 上的 x-speakeasy-entity、操作上的 x-speakeasy-entity-operation)。

使用方式:需安装并认证 Speakeasy CLI,安装 Go,设置 SPEAKEASY_API_KEY 或运行 speakeasy auth login。首次生成使用 speakeasy quickstart --skip-interactive --output console -s <spec-path> -t terraform -n <ProviderName> -p <package-name>;改动后使用 speakeasy run --output console,可加 -t <target-name> 指定 target。CRUD 映射中 POST 用 Entity#create、GET /resource/{id} 用 Entity#read、PUT 用 Entity#update、DELETE 用 Entity#delete,列表端点用复数实体名加 #read。类型推断会根据字段是否必需、是否在响应中、是否在 UPDATE 请求中决定 Required、Optional、Computed、ForceNew 及枚举校验。仓库命名建议为 terraform-provider-XXX,实体名用 PascalCase。

限制与注意:不要使用 #list,只支持 create/read/update/delete;不要直接修改生成的 Go 代码,重新生成会覆盖;不要省略 CREATE 响应体;不要漏掉 schema 上的 x-speakeasy-entity;实体名不要用 camelCase 或 snake_case;不要在 monorepo 模式下生成。其他细节暂未提供。