Repository: typesafegithub/github-workflows-kt
Pull request #1161 (2023-12-05 08:27:44)

Add new actions


Patch:
diff --git a/actions/actions/setup-java/v4/action b/actions/actions/setup-java/v4/action
new file mode 100644
index 000000000..e69de29bb
diff --git a/actions/actions/setup-java/v4/commit-hash.txt b/actions/actions/setup-java/v4/commit-hash.txt
new file mode 100644
index 000000000..b1b6b4d1c
--- /dev/null
+++ b/actions/actions/setup-java/v4/commit-hash.txt
@@ -0,0 +1,1 @@
+387ac29b308b003ca37ba93a6cab5eb57c8f5f93
\ No newline at end of file
diff --git a/actions/cachix/install-nix-action/v24/action b/actions/cachix/install-nix-action/v24/action
new file mode 100644
index 000000000..e69de29bb
diff --git a/actions/cachix/install-nix-action/v24/commit-hash.txt b/actions/cachix/install-nix-action/v24/commit-hash.txt
new file mode 100644
index 000000000..d74f2f5ae
--- /dev/null
+++ b/actions/cachix/install-nix-action/v24/commit-hash.txt
@@ -0,0 +1,1 @@
+7ac1ec25491415c381d9b62f0657c7a028df52a7
\ No newline at end of file
diff --git a/actions/google-github-actions/auth/v2/action b/actions/google-github-actions/auth/v2/action
new file mode 100644
index 000000000..e69de29bb
diff --git a/actions/google-github-actions/auth/v2/commit-hash.txt b/actions/google-github-actions/auth/v2/commit-hash.txt
new file mode 100644
index 000000000..f2c9a2c8f
--- /dev/null
+++ b/actions/google-github-actions/auth/v2/commit-hash.txt
@@ -0,0 +1,1 @@
+67e9c72af6e0492df856527b474995862b7b6591
\ No newline at end of file
diff --git a/docs/supported-actions.md b/docs/supported-actions.md
index 56fd2810c..3e35286ee 100644
--- a/docs/supported-actions.md
+++ b/docs/supported-actions.md
@@ -24,7 +24,7 @@ Click on a version to see the binding's code.
     * [labeler](https://github.com/actions/labeler) - v4: [`LabelerV4`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/LabelerV4.kt)
     * [setup-dotnet](https://github.com/actions/setup-dotnet) - v2: [`SetupDotnetV2`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupDotnetV2.kt), v3: [`SetupDotnetV3`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupDotnetV3.kt)
     * [setup-go](https://github.com/actions/setup-go) - v3: [`SetupGoV3`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupGoV3.kt), v4: [`SetupGoV4`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupGoV4.kt)
-    * [setup-java](https://github.com/actions/setup-java) - v2: [`SetupJavaV2`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV2.kt), v3: [`SetupJavaV3`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV3.kt)
+    * [setup-java](https://github.com/actions/setup-java) - v2: [`SetupJavaV2`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV2.kt), v3: [`SetupJavaV3`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV3.kt), v4: [`SetupJavaV4`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV4.kt)
     * [setup-node](https://github.com/actions/setup-node) - v2: [`SetupNodeV2`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupNodeV2.kt), v3: [`SetupNodeV3`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupNodeV3.kt), v4: [`SetupNodeV4`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupNodeV4.kt)
     * [setup-python](https://github.com/actions/setup-python) - v2: [`SetupPythonV2`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupPythonV2.kt), v3: [`SetupPythonV3`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupPythonV3.kt), v4: [`SetupPythonV4`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupPythonV4.kt)
     * [stale](https://github.com/actions/stale) - v5: [`StaleV5`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/StaleV5.kt), v6: [`StaleV6`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/StaleV6.kt), v7: [`StaleV7`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/StaleV7.kt), v8: [`StaleV8`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/StaleV8.kt)
@@ -54,7 +54,7 @@ Click on a version to see the binding's code.
     * [browserslist-update-action](https://github.com/c2corg/browserslist-update-action) - v2 ✅: [`BrowserslistUpdateActionV2`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/c2corg/BrowserslistUpdateActionV2.kt)
     * [transifex-pull-request-action](https://github.com/c2corg/transifex-pull-request-action) - v5 ✅: [`TransifexPullRequestActionV5`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/c2corg/TransifexPullRequestActionV5.kt)
 * cachix
-    * [install-nix-action](https://github.com/cachix/install-nix-action) - v17: [`InstallNixActionV17`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV17.kt), v18: [`InstallNixActionV18`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV18.kt), v19: [`InstallNixActionV19`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV19.kt), v20: [`InstallNixActionV20`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV20.kt), v21: [`InstallNixActionV21`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV21.kt), v22: [`InstallNixActionV22`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV22.kt), v23: [`InstallNixActionV23`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV23.kt)
+    * [install-nix-action](https://github.com/cachix/install-nix-action) - v17: [`InstallNixActionV17`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV17.kt), v18: [`InstallNixActionV18`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV18.kt), v19: [`InstallNixActionV19`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV19.kt), v20: [`InstallNixActionV20`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV20.kt), v21: [`InstallNixActionV21`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV21.kt), v22: [`InstallNixActionV22`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV22.kt), v23: [`InstallNixActionV23`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV23.kt), v24: [`InstallNixActionV24`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV24.kt)
 * codecov
     * [codecov-action](https://github.com/codecov/codecov-action) - v3: [`CodecovActionV3`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/codecov/CodecovActionV3.kt)
 * cycjimmy
@@ -81,7 +81,7 @@ Click on a version to see the binding's code.
     * [codeql-action/init](https://github.com/github/codeql-action/tree/v2/init) - v2: [`CodeqlActionInitV2`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/github/CodeqlActionInitV2.kt)
     * [codeql-action/upload-sarif](https://github.com/github/codeql-action/tree/v2/upload-sarif) - v2: [`CodeqlActionUploadSarifV2`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/github/CodeqlActionUploadSarifV2.kt)
 * google-github-actions
-    * [auth](https://github.com/google-github-actions/auth) - v0: [`AuthV0`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV0.kt), v1: [`AuthV1`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV1.kt)
+    * [auth](https://github.com/google-github-actions/auth) - v0: [`AuthV0`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV0.kt), v1: [`AuthV1`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV1.kt), v2: [`AuthV2`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV2.kt)
     * [setup-gcloud](https://github.com/google-github-actions/setup-gcloud) - v0: [`SetupGcloudV0`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/SetupGcloudV0.kt), v1: [`SetupGcloudV1`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/SetupGcloudV1.kt)
 * GoogleCloudPlatform
     * [github-actions](https://github.com/GoogleCloudPlatform/github-actions) - v0: [`GithubActionsV0`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlecloudplatform/GithubActionsV0.kt), v1: [`GithubActionsV1`](https://github.com/typesafegithub/github-workflows-kt/blob/v[[ version ]]/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlecloudplatform/GithubActionsV1.kt)
@@ -142,6 +142,6 @@ Click on a version to see the binding's code.
 Number of bindings available:
 
 * counting by actions: 85
-* counting each version separately: 134
+* counting each version separately: 137
 
 Actions [providing typings](https://github.com/typesafegithub/github-actions-typing/) (marked with ✅ on the above list): 18
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV2.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV2.kt
index 42a7e61e8..c9abc1dae 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV2.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV2.kt
@@ -29,8 +29,8 @@ import kotlin.collections.toTypedArray
  * [Action on GitHub](https://github.com/actions/setup-java)
  */
 @Deprecated(
-    message = "This action has a newer major version: SetupJavaV3",
-    replaceWith = ReplaceWith("SetupJavaV3"),
+    message = "This action has a newer major version: SetupJavaV4",
+    replaceWith = ReplaceWith("SetupJavaV4"),
 )
 public data class SetupJavaV2 private constructor(
     /**
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV3.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV3.kt
index 70633b2f3..f660a397b 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV3.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV3.kt
@@ -4,6 +4,7 @@
 @file:Suppress(
     "DataClassPrivateConstructor",
     "UNUSED_PARAMETER",
+    "DEPRECATION",
 )
 
 package io.github.typesafegithub.workflows.actions.actions
@@ -12,6 +13,7 @@ import io.github.typesafegithub.workflows.domain.actions.Action
 import io.github.typesafegithub.workflows.domain.actions.RegularAction
 import java.util.LinkedHashMap
 import kotlin.Boolean
+import kotlin.Deprecated
 import kotlin.String
 import kotlin.Suppress
 import kotlin.Unit
@@ -26,6 +28,10 @@ import kotlin.collections.toTypedArray
  *
  * [Action on GitHub](https://github.com/actions/setup-java)
  */
+@Deprecated(
+    message = "This action has a newer major version: SetupJavaV4",
+    replaceWith = ReplaceWith("SetupJavaV4"),
+)
 public data class SetupJavaV3 private constructor(
     /**
      * The Java version to set up. Takes a whole or semver Java version. See examples of supported
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV4.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV4.kt
new file mode 100644
index 000000000..a82cee434
--- /dev/null
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/actions/SetupJavaV4.kt
@@ -0,0 +1,273 @@
+// This file was generated using action-binding-generator. Don't change it by hand, otherwise your
+// changes will be overwritten with the next binding code regeneration.
+// See https://github.com/typesafegithub/github-workflows-kt for more info.
+@file:Suppress(
+    "DataClassPrivateConstructor",
+    "UNUSED_PARAMETER",
+)
+
+package io.github.typesafegithub.workflows.actions.actions
+
+import io.github.typesafegithub.workflows.domain.actions.Action
+import io.github.typesafegithub.workflows.domain.actions.RegularAction
+import java.util.LinkedHashMap
+import kotlin.Boolean
+import kotlin.String
+import kotlin.Suppress
+import kotlin.Unit
+import kotlin.collections.Map
+import kotlin.collections.toList
+import kotlin.collections.toTypedArray
+
+/**
+ * Action: Setup Java JDK
+ *
+ * Set up a specific version of the Java JDK and add the command-line tools to the PATH
+ *
+ * [Action on GitHub](https://github.com/actions/setup-java)
+ */
+public data class SetupJavaV4 private constructor(
+    /**
+     * The Java version to set up. Takes a whole or semver Java version. See examples of supported
+     * syntax in README file
+     */
+    public val javaVersion: String? = null,
+    /**
+     * The path to the `.java-version` file. See examples of supported syntax in README file
+     */
+    public val javaVersionFile: String? = null,
+    /**
+     * Java distribution. See the list of supported distributions in README file
+     */
+    public val distribution: SetupJavaV4.Distribution,
+    /**
+     * The package type (jdk, jre, jdk+fx, jre+fx)
+     */
+    public val javaPackage: SetupJavaV4.JavaPackage? = null,
+    /**
+     * The architecture of the package (defaults to the action runner's architecture)
+     */
+    public val architecture: String? = null,
+    /**
+     * Path to where the compressed JDK is located
+     */
+    public val jdkFile: String? = null,
+    /**
+     * Set this option if you want the action to check for the latest available version that
+     * satisfies the version spec
+     */
+    public val checkLatest: Boolean? = null,
+    /**
+     * ID of the distributionManagement repository in the pom.xml file. Default is `github`
+     */
+    public val serverId: String? = null,
+    /**
+     * Environment variable name for the username for authentication to the Apache Maven repository.
+     * Default is $GITHUB_ACTOR
+     */
+    public val serverUsername: String? = null,
+    /**
+     * Environment variable name for password or token for authentication to the Apache Maven
+     * repository. Default is $GITHUB_TOKEN
+     */
+    public val serverPassword: String? = null,
+    /**
+     * Path to where the settings.xml file will be written. Default is ~/.m2.
+     */
+    public val settingsPath: String? = null,
+    /**
+     * Overwrite the settings.xml file if it exists. Default is "true".
+     */
+    public val overwriteSettings: Boolean? = null,
+    /**
+     * GPG private key to import. Default is empty string.
+     */
+    public val gpgPrivateKey: String? = null,
+    /**
+     * Environment variable name for the GPG private key passphrase. Default is $GPG_PASSPHRASE.
+     */
+    public val gpgPassphrase: String? = null,
+    /**
+     * Name of the build platform to cache dependencies. It can be "maven", "gradle" or "sbt".
+     */
+    public val cache: SetupJavaV4.BuildPlatform? = null,
+    /**
+     * The path to a dependency file: pom.xml, build.gradle, build.sbt, etc. This option can be used
+     * with the `cache` option. If this option is omitted, the action searches for the dependency file
+     * in the entire repository. This option supports wildcards and a list of file names for caching
+     * multiple dependencies.
+     */
+    public val cacheDependencyPath: String? = null,
+    /**
+     * Workaround to pass job status to post job step. This variable is not intended for manual
+     * setting
+     */
+    public val jobStatus: String? = null,
+    /**
+     * The token used to authenticate when fetching version manifests hosted on github.com, such as
+     * for the Microsoft Build of OpenJDK. When running this action on github.com, the default value is
+     * sufficient. When running on GHES, you can pass a personal access token for github.com if you are
+     * experiencing rate limiting.
+     */
+    public val token: String? = null,
+    /**
+     * Name of Maven Toolchain ID if the default name of "${distribution}_${java-version}" is not
+     * wanted. See examples of supported syntax in Advanced Usage file
+     */
+    public val mvnToolchainId: String? = null,
+    /**
+     * Name of Maven Toolchain Vendor if the default name of "${distribution}" is not wanted. See
+     * examples of supported syntax in Advanced Usage file
+     */
+    public val mvnToolchainVendor: String? = null,
+    /**
+     * Type-unsafe map where you can put any inputs that are not yet supported by the binding
+     */
+    public val _customInputs: Map<String, String> = mapOf(),
+    /**
+     * Allows overriding action's version, for example to use a specific minor version, or a newer
+     * version that the binding doesn't yet know about
+     */
+    public val _customVersion: String? = null,
+) : RegularAction<SetupJavaV4.Outputs>("actions", "setup-java", _customVersion ?: "v4") {
+    public constructor(
+        vararg pleaseUseNamedArguments: Unit,
+        javaVersion: String? = null,
+        javaVersionFile: String? = null,
+        distribution: SetupJavaV4.Distribution,
+        javaPackage: SetupJavaV4.JavaPackage? = null,
+        architecture: String? = null,
+        jdkFile: String? = null,
+        checkLatest: Boolean? = null,
+        serverId: String? = null,
+        serverUsername: String? = null,
+        serverPassword: String? = null,
+        settingsPath: String? = null,
+        overwriteSettings: Boolean? = null,
+        gpgPrivateKey: String? = null,
+        gpgPassphrase: String? = null,
+        cache: SetupJavaV4.BuildPlatform? = null,
+        cacheDependencyPath: String? = null,
+        jobStatus: String? = null,
+        token: String? = null,
+        mvnToolchainId: String? = null,
+        mvnToolchainVendor: String? = null,
+        _customInputs: Map<String, String> = mapOf(),
+        _customVersion: String? = null,
+    ) : this(javaVersion=javaVersion, javaVersionFile=javaVersionFile, distribution=distribution,
+            javaPackage=javaPackage, architecture=architecture, jdkFile=jdkFile,
+            checkLatest=checkLatest, serverId=serverId, serverUsername=serverUsername,
+            serverPassword=serverPassword, settingsPath=settingsPath,
+            overwriteSettings=overwriteSettings, gpgPrivateKey=gpgPrivateKey,
+            gpgPassphrase=gpgPassphrase, cache=cache, cacheDependencyPath=cacheDependencyPath,
+            jobStatus=jobStatus, token=token, mvnToolchainId=mvnToolchainId,
+            mvnToolchainVendor=mvnToolchainVendor, _customInputs=_customInputs,
+            _customVersion=_customVersion)
+
+    @Suppress("SpreadOperator")
+    override fun toYamlArguments(): LinkedHashMap<String, String> = linkedMapOf(
+        *listOfNotNull(
+            javaVersion?.let { "java-version" to it },
+            javaVersionFile?.let { "java-version-file" to it },
+            "distribution" to distribution.stringValue,
+            javaPackage?.let { "java-package" to it.stringValue },
+            architecture?.let { "architecture" to it },
+            jdkFile?.let { "jdkFile" to it },
+            checkLatest?.let { "check-latest" to it.toString() },
+            serverId?.let { "server-id" to it },
+            serverUsername?.let { "server-username" to it },
+            serverPassword?.let { "server-password" to it },
+            settingsPath?.let { "settings-path" to it },
+            overwriteSettings?.let { "overwrite-settings" to it.toString() },
+            gpgPrivateKey?.let { "gpg-private-key" to it },
+            gpgPassphrase?.let { "gpg-passphrase" to it },
+            cache?.let { "cache" to it.stringValue },
+            cacheDependencyPath?.let { "cache-dependency-path" to it },
+            jobStatus?.let { "job-status" to it },
+            token?.let { "token" to it },
+            mvnToolchainId?.let { "mvn-toolchain-id" to it },
+            mvnToolchainVendor?.let { "mvn-toolchain-vendor" to it },
+            *_customInputs.toList().toTypedArray(),
+        ).toTypedArray()
+    )
+
+    override fun buildOutputObject(stepId: String): Outputs = Outputs(stepId)
+
+    public sealed class Distribution(
+        public val stringValue: String,
+    ) {
+        public object Adopt : SetupJavaV4.Distribution("adopt")
+
+        public object AdoptHotspot : SetupJavaV4.Distribution("adopt-hotspot")
+
+        public object AdoptOpenj9 : SetupJavaV4.Distribution("adopt-openj9")
+
+        public object Corretto : SetupJavaV4.Distribution("corretto")
+
+        public object Liberica : SetupJavaV4.Distribution("liberica")
+
+        public object Microsoft : SetupJavaV4.Distribution("microsoft")
+
+        public object Temurin : SetupJavaV4.Distribution("temurin")
+
+        public object Zulu : SetupJavaV4.Distribution("zulu")
+
+        public class Custom(
+            customStringValue: String,
+        ) : SetupJavaV4.Distribution(customStringValue)
+    }
+
+    public sealed class JavaPackage(
+        public val stringValue: String,
+    ) {
+        public object Jdk : SetupJavaV4.JavaPackage("jdk")
+
+        public object Jre : SetupJavaV4.JavaPackage("jre")
+
+        public object JdkPlusFx : SetupJavaV4.JavaPackage("jdk+fx")
+
+        public object JrePlusFx : SetupJavaV4.JavaPackage("jre+fx")
+
+        public class Custom(
+            customStringValue: String,
+        ) : SetupJavaV4.JavaPackage(customStringValue)
+    }
+
+    public sealed class BuildPlatform(
+        public val stringValue: String,
+    ) {
+        public object Maven : SetupJavaV4.BuildPlatform("maven")
+
+        public object Gradle : SetupJavaV4.BuildPlatform("gradle")
+
+        public object Sbt : SetupJavaV4.BuildPlatform("sbt")
+
+        public class Custom(
+            customStringValue: String,
+        ) : SetupJavaV4.BuildPlatform(customStringValue)
+    }
+
+    public class Outputs(
+        stepId: String,
+    ) : Action.Outputs(stepId) {
+        /**
+         * Distribution of Java that has been installed
+         */
+        public val distribution: String = "steps.$stepId.outputs.distribution"
+
+        /**
+         * Actual version of the java environment that has been installed
+         */
+        public val version: String = "steps.$stepId.outputs.version"
+
+        /**
+         * Path to where the java environment has been installed (same as $JAVA_HOME)
+         */
+        public val path: String = "steps.$stepId.outputs.path"
+
+        /**
+         * A boolean value to indicate an exact match was found for the primary key
+         */
+        public val cacheHit: String = "steps.$stepId.outputs.cache-hit"
+    }
+}
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV17.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV17.kt
index 9d8604d1c..3553df1fb 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV17.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV17.kt
@@ -29,8 +29,8 @@ import kotlin.collections.toTypedArray
  * [Action on GitHub](https://github.com/cachix/install-nix-action)
  */
 @Deprecated(
-    message = "This action has a newer major version: InstallNixActionV23",
-    replaceWith = ReplaceWith("InstallNixActionV23"),
+    message = "This action has a newer major version: InstallNixActionV24",
+    replaceWith = ReplaceWith("InstallNixActionV24"),
 )
 public data class InstallNixActionV17 private constructor(
     /**
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV18.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV18.kt
index a165d2f87..24d18faef 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV18.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV18.kt
@@ -29,8 +29,8 @@ import kotlin.collections.toTypedArray
  * [Action on GitHub](https://github.com/cachix/install-nix-action)
  */
 @Deprecated(
-    message = "This action has a newer major version: InstallNixActionV23",
-    replaceWith = ReplaceWith("InstallNixActionV23"),
+    message = "This action has a newer major version: InstallNixActionV24",
+    replaceWith = ReplaceWith("InstallNixActionV24"),
 )
 public data class InstallNixActionV18 private constructor(
     /**
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV19.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV19.kt
index 852cf0391..a72f8776f 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV19.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV19.kt
@@ -29,8 +29,8 @@ import kotlin.collections.toTypedArray
  * [Action on GitHub](https://github.com/cachix/install-nix-action)
  */
 @Deprecated(
-    message = "This action has a newer major version: InstallNixActionV23",
-    replaceWith = ReplaceWith("InstallNixActionV23"),
+    message = "This action has a newer major version: InstallNixActionV24",
+    replaceWith = ReplaceWith("InstallNixActionV24"),
 )
 public data class InstallNixActionV19 private constructor(
     /**
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV20.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV20.kt
index ddd6d8266..bb66081f2 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV20.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV20.kt
@@ -29,8 +29,8 @@ import kotlin.collections.toTypedArray
  * [Action on GitHub](https://github.com/cachix/install-nix-action)
  */
 @Deprecated(
-    message = "This action has a newer major version: InstallNixActionV23",
-    replaceWith = ReplaceWith("InstallNixActionV23"),
+    message = "This action has a newer major version: InstallNixActionV24",
+    replaceWith = ReplaceWith("InstallNixActionV24"),
 )
 public data class InstallNixActionV20 private constructor(
     /**
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV21.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV21.kt
index a2b6ca0cf..7c946c475 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV21.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV21.kt
@@ -29,8 +29,8 @@ import kotlin.collections.toTypedArray
  * [Action on GitHub](https://github.com/cachix/install-nix-action)
  */
 @Deprecated(
-    message = "This action has a newer major version: InstallNixActionV23",
-    replaceWith = ReplaceWith("InstallNixActionV23"),
+    message = "This action has a newer major version: InstallNixActionV24",
+    replaceWith = ReplaceWith("InstallNixActionV24"),
 )
 public data class InstallNixActionV21 private constructor(
     /**
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV22.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV22.kt
index 99f39dd8b..e67a977d0 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV22.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV22.kt
@@ -29,8 +29,8 @@ import kotlin.collections.toTypedArray
  * [Action on GitHub](https://github.com/cachix/install-nix-action)
  */
 @Deprecated(
-    message = "This action has a newer major version: InstallNixActionV23",
-    replaceWith = ReplaceWith("InstallNixActionV23"),
+    message = "This action has a newer major version: InstallNixActionV24",
+    replaceWith = ReplaceWith("InstallNixActionV24"),
 )
 public data class InstallNixActionV22 private constructor(
     /**
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV23.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV23.kt
index cab5a41fc..4b55bab2f 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV23.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV23.kt
@@ -4,6 +4,7 @@
 @file:Suppress(
     "DataClassPrivateConstructor",
     "UNUSED_PARAMETER",
+    "DEPRECATION",
 )
 
 package io.github.typesafegithub.workflows.actions.cachix
@@ -11,6 +12,7 @@ package io.github.typesafegithub.workflows.actions.cachix
 import io.github.typesafegithub.workflows.domain.actions.Action
 import io.github.typesafegithub.workflows.domain.actions.RegularAction
 import java.util.LinkedHashMap
+import kotlin.Deprecated
 import kotlin.String
 import kotlin.Suppress
 import kotlin.Unit
@@ -26,6 +28,10 @@ import kotlin.collections.toTypedArray
  *
  * [Action on GitHub](https://github.com/cachix/install-nix-action)
  */
+@Deprecated(
+    message = "This action has a newer major version: InstallNixActionV24",
+    replaceWith = ReplaceWith("InstallNixActionV24"),
+)
 public data class InstallNixActionV23 private constructor(
     /**
      * Gets appended to `/etc/nix/nix.conf` if passed.
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV24.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV24.kt
new file mode 100644
index 000000000..3fb7bd5d3
--- /dev/null
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/cachix/InstallNixActionV24.kt
@@ -0,0 +1,93 @@
+// This file was generated using action-binding-generator. Don't change it by hand, otherwise your
+// changes will be overwritten with the next binding code regeneration.
+// See https://github.com/typesafegithub/github-workflows-kt for more info.
+@file:Suppress(
+    "DataClassPrivateConstructor",
+    "UNUSED_PARAMETER",
+)
+
+package io.github.typesafegithub.workflows.actions.cachix
+
+import io.github.typesafegithub.workflows.domain.actions.Action
+import io.github.typesafegithub.workflows.domain.actions.RegularAction
+import java.util.LinkedHashMap
+import kotlin.Boolean
+import kotlin.String
+import kotlin.Suppress
+import kotlin.Unit
+import kotlin.collections.List
+import kotlin.collections.Map
+import kotlin.collections.toList
+import kotlin.collections.toTypedArray
+
+/**
+ * Action: Install Nix
+ *
+ * Installs Nix on GitHub Actions for the supported platforms: Linux and macOS.
+ *
+ * [Action on GitHub](https://github.com/cachix/install-nix-action)
+ */
+public data class InstallNixActionV24 private constructor(
+    /**
+     * Gets appended to `/etc/nix/nix.conf` if passed.
+     */
+    public val extraNixConfig: String? = null,
+    /**
+     * Configure nix to pull from github using the given github token.
+     */
+    public val githubAccessToken: String? = null,
+    /**
+     * Installation URL that will contain a script to install Nix.
+     */
+    public val installUrl: String? = null,
+    /**
+     * Additional installer flags passed to the installer script.
+     */
+    public val installOptions: List<String>? = null,
+    /**
+     * Set NIX_PATH environment variable.
+     */
+    public val nixPath: String? = null,
+    /**
+     * Enable KVM for hardware-accelerated virtualization on Linux, if available.
+     */
+    public val enableKvm: Boolean? = null,
+    /**
+     * Type-unsafe map where you can put any inputs that are not yet supported by the binding
+     */
+    public val _customInputs: Map<String, String> = mapOf(),
+    /**
+     * Allows overriding action's version, for example to use a specific minor version, or a newer
+     * version that the binding doesn't yet know about
+     */
+    public val _customVersion: String? = null,
+) : RegularAction<Action.Outputs>("cachix", "install-nix-action", _customVersion ?: "v24") {
+    public constructor(
+        vararg pleaseUseNamedArguments: Unit,
+        extraNixConfig: String? = null,
+        githubAccessToken: String? = null,
+        installUrl: String? = null,
+        installOptions: List<String>? = null,
+        nixPath: String? = null,
+        enableKvm: Boolean? = null,
+        _customInputs: Map<String, String> = mapOf(),
+        _customVersion: String? = null,
+    ) : this(extraNixConfig=extraNixConfig, githubAccessToken=githubAccessToken,
+            installUrl=installUrl, installOptions=installOptions, nixPath=nixPath,
+            enableKvm=enableKvm, _customInputs=_customInputs, _customVersion=_customVersion)
+
+    @Suppress("SpreadOperator")
+    override fun toYamlArguments(): LinkedHashMap<String, String> = linkedMapOf(
+        *listOfNotNull(
+            extraNixConfig?.let { "extra_nix_config" to it },
+            githubAccessToken?.let { "github_access_token" to it },
+            installUrl?.let { "install_url" to it },
+            installOptions?.let { "install_options" to it.joinToString("\n") },
+            nixPath?.let { "nix_path" to it },
+            enableKvm?.let { "enable_kvm" to it.toString() },
+            *_customInputs.toList().toTypedArray(),
+        ).toTypedArray()
+    )
+
+    override fun buildOutputObject(stepId: String): Action.Outputs = Outputs(stepId)
+}
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV0.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV0.kt
index 201531e44..3dc6be129 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV0.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV0.kt
@@ -32,8 +32,8 @@ import kotlin.collections.toTypedArray
  * [Action on GitHub](https://github.com/google-github-actions/auth)
  */
 @Deprecated(
-    message = "This action has a newer major version: AuthV1",
-    replaceWith = ReplaceWith("AuthV1"),
+    message = "This action has a newer major version: AuthV2",
+    replaceWith = ReplaceWith("AuthV2"),
 )
 public data class AuthV0 private constructor(
     /**
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV1.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV1.kt
index ec8f0195b..1e13eb3e7 100644
--- a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV1.kt
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV1.kt
@@ -4,6 +4,7 @@
 @file:Suppress(
     "DataClassPrivateConstructor",
     "UNUSED_PARAMETER",
+    "DEPRECATION",
 )
 
 package io.github.typesafegithub.workflows.actions.googlegithubactions
@@ -12,6 +13,7 @@ import io.github.typesafegithub.workflows.domain.actions.Action
 import io.github.typesafegithub.workflows.domain.actions.RegularAction
 import java.util.LinkedHashMap
 import kotlin.Boolean
+import kotlin.Deprecated
 import kotlin.Int
 import kotlin.String
 import kotlin.Suppress
@@ -29,6 +31,10 @@ import kotlin.collections.toTypedArray
  *
  * [Action on GitHub](https://github.com/google-github-actions/auth)
  */
+@Deprecated(
+    message = "This action has a newer major version: AuthV2",
+    replaceWith = ReplaceWith("AuthV2"),
+)
 public data class AuthV1 private constructor(
     /**
      * ID of the default project to use for future API calls and invocations. If
diff --git a/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV2.kt b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV2.kt
new file mode 100644
index 000000000..df504cd91
--- /dev/null
+++ b/library/src/gen/kotlin/io/github/typesafegithub/workflows/actions/googlegithubactions/AuthV2.kt
@@ -0,0 +1,277 @@
+// This file was generated using action-binding-generator. Don't change it by hand, otherwise your
+// changes will be overwritten with the next binding code regeneration.
+// See https://github.com/typesafegithub/github-workflows-kt for more info.
+@file:Suppress(
+    "DataClassPrivateConstructor",
+    "UNUSED_PARAMETER",
+)
+
+package io.github.typesafegithub.workflows.actions.googlegithubactions
+
+import io.github.typesafegithub.workflows.domain.actions.Action
+import io.github.typesafegithub.workflows.domain.actions.RegularAction
+import java.util.LinkedHashMap
+import kotlin.Boolean
+import kotlin.Int
+import kotlin.String
+import kotlin.Suppress
+import kotlin.Unit
+import kotlin.collections.List
+import kotlin.collections.Map
+import kotlin.collections.toList
+import kotlin.collections.toTypedArray
+
+/**
+ * Action: Authenticate to Google Cloud
+ *
+ * Authenticate to Google Cloud from GitHub Actions via Workload Identity
+ * Federation or service account keys.
+ *
+ * [Action on GitHub](https://github.com/google-github-actions/auth)
+ */
+public data class AuthV2 private constructor(
+    /**
+     * ID of the default project to use for future API calls and invocations. If
+     * unspecified, this action will attempt to extract the value from other
+     * inputs such as "service_account" or "credentials_json".
+     */
+    public val projectId: String? = null,
+    /**
+     * The full identifier of the Workload Identity Provider, including the
+     * project number, pool name, and provider name. If provided, this must be
+     * the full identifier which includes all parts, for example:
+     * "projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider".
+     * This is mutually exclusive with "credentials_json".
+     */
+    public val workloadIdentityProvider: String? = null,
+    /**
+     * Email address or unique identifier of the Google Cloud service account for
+     * which to generate credentials. This is required if
+     * "workload_identity_provider" is specified.
+     */
+    public val serviceAccount: String? = null,
+    /**
+     * The value for the audience (aud) parameter in GitHub's generated OIDC
+     * token. This value defaults to the value of "workload_identity_provider",
+     * which is also the default value Google Cloud expects for the audience
+     * parameter on the token.
+     */
+    public val audience: String? = null,
+    /**
+     * The Google Cloud JSON service account key to use for authentication. This
+     * is mutually exclusive with "workload_identity_provider".
+     */
+    public val credentialsJson: String? = null,
+    /**
+     * If true, the action will securely generate a credentials file which can be
+     * used for authentication via gcloud and Google Cloud SDKs.
+     */
+    public val createCredentialsFile: Boolean? = null,
+    /**
+     * If true, the action will export common environment variables which are
+     * known to be consumed by popular downstream libraries and tools, including:
+     *
+     * - CLOUDSDK_PROJECT
+     * - CLOUDSDK_CORE_PROJECT
+     * - GCP_PROJECT
+     * - GCLOUD_PROJECT
+     * - GOOGLE_CLOUD_PROJECT
+     *
+     * If "create_credentials_file" is true, additional environment variables are
+     * exported:
+     *
+     * - CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE
+     * - GOOGLE_APPLICATION_CREDENTIALS
+     * - GOOGLE_GHA_CREDS_PATH
+     *
+     * If false, the action will not export any environment variables, meaning
+     * future steps are unlikely to be automatically authenticated to Google
+     * Cloud.
+     */
+    public val exportEnvironmentVariables: Boolean? = null,
+    /**
+     * Output format for the generated authentication token. For OAuth 2.0 access
+     * tokens, specify "access_token". For OIDC tokens, specify "id_token". To
+     * skip token generation, leave this value empty.
+     */
+    public val tokenFormat: AuthV2.TokenFormat? = null,
+    /**
+     * List of additional service account emails or unique identities to use for
+     * impersonation in the chain.
+     */
+    public val delegates: List<String>? = null,
+    /**
+     * The Google Cloud universe to use for constructing API endpoints. The
+     * default universe is "googleapis.com", which corresponds to
+     * https://cloud.google.com. Trusted Partner Cloud and Google Distributed
+     * Hosted Cloud should set this to their universe address.
+     */
+    public val universe: String? = null,
+    /**
+     * If true, the action will remove any created credentials from the
+     * filesystem upon completion. This only applies if "create_credentials_file"
+     * is true.
+     */
+    public val cleanupCredentials: Boolean? = null,
+    /**
+     * Desired lifetime duration of the access token, in seconds. This must be
+     * specified as the number of seconds with a trailing "s" (e.g. 30s). This is
+     * only valid when "token_format" is "access_token".
+     */
+    public val accessTokenLifetime: String? = null,
+    /**
+     * List of OAuth 2.0 access scopes to be included in the generated token.
+     * This is only valid when "token_format" is "access_token".
+     */
+    public val accessTokenScopes: List<String>? = null,
+    /**
+     * Email address of a user to impersonate for Domain-Wide Delegation Access
+     * tokens created for Domain-Wide Delegation cannot have a lifetime beyond 1
+     * hour. This is only valid when "token_format" is "access_token".
+     */
+    public val accessTokenSubject: String? = null,
+    /**
+     * Number of times to retry a failed authentication attempt. This is useful
+     * for automated pipelines that may execute before IAM permissions are fully
+     * propogated.
+     */
+    public val retries: Int? = null,
+    /**
+     * Delay time before trying another authentication attempt. This is
+     * implemented using a fibonacci backoff method (e.g. 1-1-2-3-5). The default
+     * value is 250 milliseconds.
+     */
+    public val backoff: Int? = null,
+    /**
+     * Limits the retry backoff to the specified value.
+     */
+    public val backoffLimit: Int? = null,
+    /**
+     * The audience (aud) for the generated Google Cloud ID Token. This is only
+     * valid when "token_format" is "id_token".
+     */
+    public val idTokenAudience: String? = null,
+    /**
+     * Optional parameter of whether to include the service account email in the
+     * generated token. If true, the token will contain "email" and
+     * "email_verified" claims. This is only valid when "token_format" is
+     * "id_token".
+     */
+    public val idTokenIncludeEmail: Boolean? = null,
+    /**
+     * Type-unsafe map where you can put any inputs that are not yet supported by the binding
+     */
+    public val _customInputs: Map<String, String> = mapOf(),
+    /**
+     * Allows overriding action's version, for example to use a specific minor version, or a newer
+     * version that the binding doesn't yet know about
+     */
+    public val _customVersion: String? = null,
+) : RegularAction<AuthV2.Outputs>("google-github-actions", "auth", _customVersion ?: "v2") {
+    public constructor(
+        vararg pleaseUseNamedArguments: Unit,
+        projectId: String? = null,
+        workloadIdentityProvider: String? = null,
+        serviceAccount: String? = null,
+        audience: String? = null,
+        credentialsJson: String? = null,
+        createCredentialsFile: Boolean? = null,
+        exportEnvironmentVariables: Boolean? = null,
+        tokenFormat: AuthV2.TokenFormat? = null,
+        delegates: List<String>? = null,
+        universe: String? = null,
+        cleanupCredentials: Boolean? = null,
+        accessTokenLifetime: String? = null,
+        accessTokenScopes: List<String>? = null,
+        accessTokenSubject: String? = null,
+        retries: Int? = null,
+        backoff: Int? = null,
+        backoffLimit: Int? = null,
+        idTokenAudience: String? = null,
+        idTokenIncludeEmail: Boolean? = null,
+        _customInputs: Map<String, String> = mapOf(),
+        _customVersion: String? = null,
+    ) : this(projectId=projectId, workloadIdentityProvider=workloadIdentityProvider,
+            serviceAccount=serviceAccount, audience=audience, credentialsJson=credentialsJson,
+            createCredentialsFile=createCredentialsFile,
+            exportEnvironmentVariables=exportEnvironmentVariables, tokenFormat=tokenFormat,
+            delegates=delegates, universe=universe, cleanupCredentials=cleanupCredentials,
+            accessTokenLifetime=accessTokenLifetime, accessTokenScopes=accessTokenScopes,
+            accessTokenSubject=accessTokenSubject, retries=retries, backoff=backoff,
+            backoffLimit=backoffLimit, idTokenAudience=idTokenAudience,
+            idTokenIncludeEmail=idTokenIncludeEmail, _customInputs=_customInputs,
+            _customVersion=_customVersion)
+
+    @Suppress("SpreadOperator")
+    override fun toYamlArguments(): LinkedHashMap<String, String> = linkedMapOf(
+        *listOfNotNull(
+            projectId?.let { "project_id" to it },
+            workloadIdentityProvider?.let { "workload_identity_provider" to it },
+            serviceAccount?.let { "service_account" to it },
+            audience?.let { "audience" to it },
+            credentialsJson?.let { "credentials_json" to it },
+            createCredentialsFile?.let { "create_credentials_file" to it.toString() },
+            exportEnvironmentVariables?.let { "export_environment_variables" to it.toString() },
+            tokenFormat?.let { "token_format" to it.stringValue },
+            delegates?.let { "delegates" to it.joinToString(",") },
+            universe?.let { "universe" to it },
+            cleanupCredentials?.let { "cleanup_credentials" to it.toString() },
+            accessTokenLifetime?.let { "access_token_lifetime" to it },
+            accessTokenScopes?.let { "access_token_scopes" to it.joinToString(",") },
+            accessTokenSubject?.let { "access_token_subject" to it },
+            retries?.let { "retries" to it.toString() },
+            backoff?.let { "backoff" to it.toString() },
+            backoffLimit?.let { "backoff_limit" to it.toString() },
+            idTokenAudience?.let { "id_token_audience" to it },
+            idTokenIncludeEmail?.let { "id_token_include_email" to it.toString() },
+            *_customInputs.toList().toTypedArray(),
+        ).toTypedArray()
+    )
+
+    override fun buildOutputObject(stepId: String): Outputs = Outputs(stepId)
+
+    public sealed class TokenFormat(
+        public val stringValue: String,
+    ) {
+        public object AccessToken : AuthV2.TokenFormat("access_token")
+
+        public object IdToken : AuthV2.TokenFormat("id_token")
+
+        public class Custom(
+            customStringValue: String,
+        ) : AuthV2.TokenFormat(customStringValue)
+    }
+
+    public class Outputs(
+        stepId: String,
+    ) : Action.Outputs(stepId) {
+        /**
+         * Provided or extracted value for the Google Cloud project ID.
+         */
+        public val projectId: String = "steps.$stepId.outputs.project_id"
+
+        /**
+         * Path on the local filesystem where the generated credentials file resides.
+         * This is only available if "create_credentials_file" was set to true.
+         */
+        public val credentialsFilePath: String = "steps.$stepId.outputs.credentials_file_path"
+
+        /**
+         * The intermediate authentication token, which could be used to call other
+         * Google Cloud APIs, depending on how you configured IAM.
+         */
+        public val authToken: String = "steps.$stepId.outputs.auth_token"
+
+        /**
+         * The Google Cloud access token for calling other Google Cloud APIs. This is
+         * only available when "token_format" is "access_token".
+         */
+        public val accessToken: String = "steps.$stepId.outputs.access_token"
+
+        /**
+         * The Google Cloud ID token. This is only available when "token_format" is
+         * "id_token".
+         */
+        public val idToken: String = "steps.$stepId.outputs.id_token"
+    }
+}


Test patch:
diff --git a/library/src/test/kotlin/io/github/typesafegithub/workflows/dsl/JobBuilderTest.kt b/library/src/test/kotlin/io/github/typesafegithub/workflows/dsl/JobBuilderTest.kt
index c287db481..4a6cfebb7 100644
--- a/library/src/test/kotlin/io/github/typesafegithub/workflows/dsl/JobBuilderTest.kt
+++ b/library/src/test/kotlin/io/github/typesafegithub/workflows/dsl/JobBuilderTest.kt
@@ -1,8 +1,8 @@
 package io.github.typesafegithub.workflows.dsl
 
 import io.github.typesafegithub.workflows.actions.actions.CheckoutV4
-import io.github.typesafegithub.workflows.actions.actions.SetupJavaV3
-import io.github.typesafegithub.workflows.actions.actions.SetupJavaV3.Distribution.Adopt
+import io.github.typesafegithub.workflows.actions.actions.SetupJavaV4
+import io.github.typesafegithub.workflows.actions.actions.SetupJavaV4.Distribution.Adopt
 import io.github.typesafegithub.workflows.domain.RunnerType
 import io.github.typesafegithub.workflows.domain.triggers.Push
 import io.kotest.assertions.throwables.shouldThrow
@@ -44,11 +44,11 @@ class JobBuilderTest : FunSpec({
                         )
                         uses(
                             name = "Set up Java",
-                            action = SetupJavaV3(distribution = Adopt, javaVersion = "11"),
+                            action = SetupJavaV4(distribution = Adopt, javaVersion = "11"),
                             _customArguments = mapOf("foo4" to true),
                         )
                         uses(
-                            action = SetupJavaV3(distribution = Adopt, javaVersion = "11"),
+                            action = SetupJavaV4(distribution = Adopt, javaVersion = "11"),
                             _customArguments = mapOf("foo5" to true),
                         )
                     }