用途:该技能用于从 OpenAPI 3.0/3.1 规范生成 Terraform Provider。需先为规范添加实体注解:在 component schema 上添加 x-speakeasy-entity,在 API 操作上添加 x-speakeasy-entity-operation(值为 Entity#create/read/update/delete)。列表数据源应使用复数实体名搭配 #read,#list 不是合法操作类型。
主要能力:自动从 OpenAPI schema 推断 Terraform 属性类型——创建请求中必填的为 Required,非必填的为 Optional,仅出现在响应中的为 Computed,存在于创建但不存在于更新请求中的加 ForceNew,枚举属性添加校验器。生成 Go 编写的 Provider,支持资源导入(简单 ID 或 JSON 编码的复合键),并可配置 workflow.yaml 与 gen.yaml。
用法:安装并认证 Speakeasy CLI(设置 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 重新生成。构建测试需执行 go build ./... 与 go test ./...,验收测试需设置 TF_ACC=1。
适用场景:为自有或第三方 API 构建 Terraform Provider,并发布到 Terraform Registry。
限制:不直接修改生成的 Go 代码,需用 overlay 或 hook;不可省略 CREATE 响应体;实体名须用 PascalCase;不支持在 monorepo 模式下生成 Provider,仓库须命名为 terraform-provider-XXX。资料未提及该技能本身的收费与价格信息。