openApiGenerate {
    generatorName = "java"
    library = "webclient"
    inputSpec.set(layout.projectDirectory.dir("src/main/resources/openapi.json").toString())
    outputDir.set(layout.buildDirectory.dir("generated/sources/openapi/src/main/java").map { it.toString() })
    configOptions.putAll([
        sourceFolder        : "",
        openApiNullable     : "false",
        serializationLibrary: "jackson",
        // implicitHeadersRegex: ".*(Correlation|Tenant|Idempotency).*",
    ])
    typeMappings.putAll([
        "MetadataDetailValue": "Object"
    ])
    modelPackage = "com.myorg.cg.cp.client.group.openapi.dto"
    apiPackage = "com.myorg.cg.cp.client.group.openapi.client"
}

compileJava.dependsOn tasks.openApiGenerate
sourcesJar.dependsOn tasks.openApiGenerate

sourceSets {
    main {
        java {
            srcDir(tasks.openApiGenerate)
        }
    }
}