From 5f87a1401df91349272805938dc9689bf5ec3716 Mon Sep 17 00:00:00 2001 From: Jason D'Amour Date: Tue, 17 Feb 2026 17:10:56 +0000 Subject: [PATCH] fix: don't create files for resources/datasources that don't expose qualifying create/read endpoints --- .../languages/TerraformProviderCodegen.java | 69 ++++++++++++++++++- .../terraform-provider/go.mod.mustache | 27 +++++++- .../terraform-provider/provider.mustache | 8 +-- 3 files changed, 97 insertions(+), 7 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TerraformProviderCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TerraformProviderCodegen.java index 7cc6bcfbcf98..47d25710d160 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TerraformProviderCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TerraformProviderCodegen.java @@ -45,6 +45,11 @@ public class TerraformProviderCodegen extends AbstractGoCodegen { protected String providerAddress = "registry.terraform.io/example/example"; protected String providerVersion = "0.1.0"; + // Track which tags qualify as resources vs data sources so we can + // delete non-qualifying files in postProcessFile. + private final Set resourceNames = new HashSet<>(); + private final Set dataSourceNames = new HashSet<>(); + @Override public CodegenType getTag() { return CodegenType.CLIENT; @@ -122,6 +127,9 @@ public TerraformProviderCodegen() { public void processOpts() { super.processOpts(); + // Enable postProcessFile so we can delete non-qualifying API files + this.setEnablePostProcessFile(true); + if (additionalProperties.containsKey(PROVIDER_NAME)) { providerName = additionalProperties.get(PROVIDER_NAME).toString(); } @@ -272,6 +280,14 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List