From 47cfdff961297d0eebc4f51dcdca16396a014fe2 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Thu, 30 Jul 2026 18:11:54 +0100
Subject: [PATCH 1/3] fix(options): correct generated enum values
Use EnumValueAttribute for CLI serialization and stop treating duration suffixes or repeatability hints as complete enum value sets.
---
.github/workflows/generate-cli-options.yml | 3 ++
...kerBuilderHistoryLogsProgress.Generated.cs | 8 ++--
...ckerBuildxHistoryLogsProgress.Generated.cs | 8 ++--
.../Enums/DockerComposeProgress.Generated.cs | 12 ++---
...DockerContainerCreateCgroupns.Generated.cs | 6 +--
...ContainerCreateHealthInterval.Generated.cs | 30 ------------
...inerCreateHealthStartInterval.Generated.cs | 30 ------------
...tainerCreateHealthStartPeriod.Generated.cs | 30 ------------
...rContainerCreateHealthTimeout.Generated.cs | 30 ------------
.../DockerContainerRunCgroupns.Generated.cs | 6 +--
...kerContainerRunHealthInterval.Generated.cs | 30 ------------
...ntainerRunHealthStartInterval.Generated.cs | 30 ------------
...ContainerRunHealthStartPeriod.Generated.cs | 30 ------------
...ckerContainerRunHealthTimeout.Generated.cs | 30 ------------
.../Enums/DockerCreateCgroupns.Generated.cs | 6 +--
.../DockerCreateHealthInterval.Generated.cs | 30 ------------
...ckerCreateHealthStartInterval.Generated.cs | 30 ------------
...DockerCreateHealthStartPeriod.Generated.cs | 30 ------------
.../DockerCreateHealthTimeout.Generated.cs | 30 ------------
.../Enums/DockerRunCgroupns.Generated.cs | 6 +--
.../DockerRunHealthInterval.Generated.cs | 30 ------------
.../DockerRunHealthStartInterval.Generated.cs | 30 ------------
.../DockerRunHealthStartPeriod.Generated.cs | 30 ------------
.../Enums/DockerRunHealthTimeout.Generated.cs | 30 ------------
.../DockerSwarmInitCertExpiry.Generated.cs | 36 --------------
...rSwarmInitDispatcherHeartbeat.Generated.cs | 36 --------------
.../DockerContainerCreateOptions.Generated.cs | 8 ++--
.../DockerContainerRunOptions.Generated.cs | 8 ++--
.../Options/DockerCreateOptions.Generated.cs | 8 ++--
.../Options/DockerRunOptions.Generated.cs | 8 ++--
.../DockerSwarmInitOptions.Generated.cs | 4 +-
.../MinikubeDockerEnvOutput.Generated.cs | 8 ++--
.../Enums/MinikubeImageLsFormat.Generated.cs | 10 ++--
.../MinikubeProfileListOutput.Generated.cs | 6 +--
.../MinikubeServiceListOutput.Generated.cs | 6 +--
.../Enums/MinikubeStartDriver.Generated.cs | 20 ++++----
.../MinikubeStartHostOnlyNicType.Generated.cs | 14 +++---
.../MinikubeStartNatNicType.Generated.cs | 14 +++---
...tSettingsEditOidcAwsPolicyArn.Generated.cs | 24 ----------
...loymentSettingsEditPathFilter.Generated.cs | 24 ----------
...ploymentSettingsEditRemoveEnv.Generated.cs | 24 ----------
...umiInsightsAccountNewProvider.Generated.cs | 12 ++---
...nsightsAccountNewScanSchedule.Generated.cs | 8 ++--
...PulumiOrgAuditLogExportFormat.Generated.cs | 6 +--
.../PulumiOrgUsageGetGranularity.Generated.cs | 8 ++--
...umiStackScheduleEditOperation.Generated.cs | 10 ++--
.../PulumiStackScheduleNewKind.Generated.cs | 8 ++--
...lumiStackScheduleNewOperation.Generated.cs | 10 ++--
...DeploymentSettingsEditOptions.Generated.cs | 6 +--
.../scripts/Test-GeneratedEnumAttributes.ps1 | 22 +++++++++
.../Base/CliDocumentationScraperBaseTests.cs | 47 +++++++++++++++++++
.../Base/CliDocumentationScraperBase.cs | 12 +++++
52 files changed, 201 insertions(+), 741 deletions(-)
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthInterval.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthStartInterval.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthStartPeriod.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthTimeout.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerContainerRunHealthInterval.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerContainerRunHealthStartInterval.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerContainerRunHealthStartPeriod.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerContainerRunHealthTimeout.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerCreateHealthInterval.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerCreateHealthStartInterval.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerCreateHealthStartPeriod.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerCreateHealthTimeout.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerRunHealthInterval.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerRunHealthStartInterval.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerRunHealthStartPeriod.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerRunHealthTimeout.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerSwarmInitCertExpiry.Generated.cs
delete mode 100644 src/ModularPipelines.Docker/Enums/DockerSwarmInitDispatcherHeartbeat.Generated.cs
delete mode 100644 src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditOidcAwsPolicyArn.Generated.cs
delete mode 100644 src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditPathFilter.Generated.cs
delete mode 100644 src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditRemoveEnv.Generated.cs
create mode 100644 tools/ModularPipelines.OptionsGenerator/scripts/Test-GeneratedEnumAttributes.ps1
create mode 100644 tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/Scrapers/Base/CliDocumentationScraperBaseTests.cs
diff --git a/.github/workflows/generate-cli-options.yml b/.github/workflows/generate-cli-options.yml
index 4e971f6c17..33331adcea 100644
--- a/.github/workflows/generate-cli-options.yml
+++ b/.github/workflows/generate-cli-options.yml
@@ -34,6 +34,9 @@ jobs:
- name: Test exact generated-file staging
shell: pwsh
run: tools/ModularPipelines.OptionsGenerator/scripts/Test-StageGeneratedChanges.ps1
+ - name: Reject stale generated enum attributes
+ shell: pwsh
+ run: tools/ModularPipelines.OptionsGenerator/scripts/Test-GeneratedEnumAttributes.ps1
tool-catalog:
needs: validate-generation-safety
diff --git a/src/ModularPipelines.Docker/Enums/DockerBuilderHistoryLogsProgress.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerBuilderHistoryLogsProgress.Generated.cs
index 47a0db89fe..6023dcc198 100644
--- a/src/ModularPipelines.Docker/Enums/DockerBuilderHistoryLogsProgress.Generated.cs
+++ b/src/ModularPipelines.Docker/Enums/DockerBuilderHistoryLogsProgress.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Docker.Enums;
@@ -16,12 +16,12 @@ namespace ModularPipelines.Docker.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum DockerBuilderHistoryLogsProgress
{
- [Description("plain")]
+ [EnumValue("plain")]
Plain,
- [Description("rawjson")]
+ [EnumValue("rawjson")]
Rawjson,
- [Description("tty")]
+ [EnumValue("tty")]
Tty
}
diff --git a/src/ModularPipelines.Docker/Enums/DockerBuildxHistoryLogsProgress.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerBuildxHistoryLogsProgress.Generated.cs
index 56bb629ac3..30fbd23faa 100644
--- a/src/ModularPipelines.Docker/Enums/DockerBuildxHistoryLogsProgress.Generated.cs
+++ b/src/ModularPipelines.Docker/Enums/DockerBuildxHistoryLogsProgress.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Docker.Enums;
@@ -16,12 +16,12 @@ namespace ModularPipelines.Docker.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum DockerBuildxHistoryLogsProgress
{
- [Description("plain")]
+ [EnumValue("plain")]
Plain,
- [Description("rawjson")]
+ [EnumValue("rawjson")]
Rawjson,
- [Description("tty")]
+ [EnumValue("tty")]
Tty
}
diff --git a/src/ModularPipelines.Docker/Enums/DockerComposeProgress.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerComposeProgress.Generated.cs
index 97ae30e367..59ad1654b8 100644
--- a/src/ModularPipelines.Docker/Enums/DockerComposeProgress.Generated.cs
+++ b/src/ModularPipelines.Docker/Enums/DockerComposeProgress.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Docker.Enums;
@@ -16,18 +16,18 @@ namespace ModularPipelines.Docker.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum DockerComposeProgress
{
- [Description("auto")]
+ [EnumValue("auto")]
Auto,
- [Description("tty")]
+ [EnumValue("tty")]
Tty,
- [Description("plain")]
+ [EnumValue("plain")]
Plain,
- [Description("json")]
+ [EnumValue("json")]
Json,
- [Description("quiet")]
+ [EnumValue("quiet")]
Quiet
}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerCreateCgroupns.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerCreateCgroupns.Generated.cs
index 5f50c55e48..7a6e8b9b16 100644
--- a/src/ModularPipelines.Docker/Enums/DockerContainerCreateCgroupns.Generated.cs
+++ b/src/ModularPipelines.Docker/Enums/DockerContainerCreateCgroupns.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Docker.Enums;
@@ -16,9 +16,9 @@ namespace ModularPipelines.Docker.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum DockerContainerCreateCgroupns
{
- [Description("host")]
+ [EnumValue("host")]
Host,
- [Description("private")]
+ [EnumValue("private")]
Private
}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthInterval.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthInterval.Generated.cs
deleted file mode 100644
index 426d4bfebe..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthInterval.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthinterval option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerContainerCreateHealthInterval
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthStartInterval.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthStartInterval.Generated.cs
deleted file mode 100644
index 61f97816ea..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthStartInterval.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthstartinterval option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerContainerCreateHealthStartInterval
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthStartPeriod.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthStartPeriod.Generated.cs
deleted file mode 100644
index c00995936f..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthStartPeriod.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthstartperiod option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerContainerCreateHealthStartPeriod
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthTimeout.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthTimeout.Generated.cs
deleted file mode 100644
index d9008753f3..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerContainerCreateHealthTimeout.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthtimeout option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerContainerCreateHealthTimeout
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerRunCgroupns.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerRunCgroupns.Generated.cs
index 3757c3f374..bff40de82d 100644
--- a/src/ModularPipelines.Docker/Enums/DockerContainerRunCgroupns.Generated.cs
+++ b/src/ModularPipelines.Docker/Enums/DockerContainerRunCgroupns.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Docker.Enums;
@@ -16,9 +16,9 @@ namespace ModularPipelines.Docker.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum DockerContainerRunCgroupns
{
- [Description("host")]
+ [EnumValue("host")]
Host,
- [Description("private")]
+ [EnumValue("private")]
Private
}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthInterval.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthInterval.Generated.cs
deleted file mode 100644
index 4d6292de2f..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthInterval.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthinterval option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerContainerRunHealthInterval
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthStartInterval.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthStartInterval.Generated.cs
deleted file mode 100644
index 21efb00d0b..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthStartInterval.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthstartinterval option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerContainerRunHealthStartInterval
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthStartPeriod.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthStartPeriod.Generated.cs
deleted file mode 100644
index d98fc960ae..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthStartPeriod.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthstartperiod option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerContainerRunHealthStartPeriod
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthTimeout.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthTimeout.Generated.cs
deleted file mode 100644
index 9fe6225f8b..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerContainerRunHealthTimeout.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthtimeout option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerContainerRunHealthTimeout
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerCreateCgroupns.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerCreateCgroupns.Generated.cs
index a3373374e4..2cf633a2fe 100644
--- a/src/ModularPipelines.Docker/Enums/DockerCreateCgroupns.Generated.cs
+++ b/src/ModularPipelines.Docker/Enums/DockerCreateCgroupns.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Docker.Enums;
@@ -16,9 +16,9 @@ namespace ModularPipelines.Docker.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum DockerCreateCgroupns
{
- [Description("host")]
+ [EnumValue("host")]
Host,
- [Description("private")]
+ [EnumValue("private")]
Private
}
diff --git a/src/ModularPipelines.Docker/Enums/DockerCreateHealthInterval.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerCreateHealthInterval.Generated.cs
deleted file mode 100644
index a0da5215c1..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerCreateHealthInterval.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthinterval option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerCreateHealthInterval
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerCreateHealthStartInterval.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerCreateHealthStartInterval.Generated.cs
deleted file mode 100644
index 9c6bd066f3..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerCreateHealthStartInterval.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthstartinterval option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerCreateHealthStartInterval
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerCreateHealthStartPeriod.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerCreateHealthStartPeriod.Generated.cs
deleted file mode 100644
index b4ac2b561b..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerCreateHealthStartPeriod.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthstartperiod option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerCreateHealthStartPeriod
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerCreateHealthTimeout.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerCreateHealthTimeout.Generated.cs
deleted file mode 100644
index 0d13aa17ca..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerCreateHealthTimeout.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthtimeout option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerCreateHealthTimeout
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerRunCgroupns.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerRunCgroupns.Generated.cs
index b15eeae10e..6c61eb6656 100644
--- a/src/ModularPipelines.Docker/Enums/DockerRunCgroupns.Generated.cs
+++ b/src/ModularPipelines.Docker/Enums/DockerRunCgroupns.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Docker.Enums;
@@ -16,9 +16,9 @@ namespace ModularPipelines.Docker.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum DockerRunCgroupns
{
- [Description("host")]
+ [EnumValue("host")]
Host,
- [Description("private")]
+ [EnumValue("private")]
Private
}
diff --git a/src/ModularPipelines.Docker/Enums/DockerRunHealthInterval.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerRunHealthInterval.Generated.cs
deleted file mode 100644
index 117b0672d5..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerRunHealthInterval.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthinterval option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerRunHealthInterval
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerRunHealthStartInterval.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerRunHealthStartInterval.Generated.cs
deleted file mode 100644
index a56fb70fe4..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerRunHealthStartInterval.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthstartinterval option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerRunHealthStartInterval
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerRunHealthStartPeriod.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerRunHealthStartPeriod.Generated.cs
deleted file mode 100644
index 81cdab972f..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerRunHealthStartPeriod.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthstartperiod option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerRunHealthStartPeriod
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerRunHealthTimeout.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerRunHealthTimeout.Generated.cs
deleted file mode 100644
index d882373931..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerRunHealthTimeout.Generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --healthtimeout option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerRunHealthTimeout
-{
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerSwarmInitCertExpiry.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerSwarmInitCertExpiry.Generated.cs
deleted file mode 100644
index adcd8797b9..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerSwarmInitCertExpiry.Generated.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --certexpiry option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerSwarmInitCertExpiry
-{
- [Description("ns")]
- Ns,
-
- [Description("us")]
- Us,
-
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Enums/DockerSwarmInitDispatcherHeartbeat.Generated.cs b/src/ModularPipelines.Docker/Enums/DockerSwarmInitDispatcherHeartbeat.Generated.cs
deleted file mode 100644
index f734a91b94..0000000000
--- a/src/ModularPipelines.Docker/Enums/DockerSwarmInitDispatcherHeartbeat.Generated.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Docker.Enums;
-
-///
-/// Allowed values for the --dispatcherheartbeat option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum DockerSwarmInitDispatcherHeartbeat
-{
- [Description("ns")]
- Ns,
-
- [Description("us")]
- Us,
-
- [Description("ms")]
- Ms,
-
- [Description("s")]
- S,
-
- [Description("m")]
- M,
-
- [Description("h")]
- H
-}
diff --git a/src/ModularPipelines.Docker/Options/DockerContainerCreateOptions.Generated.cs b/src/ModularPipelines.Docker/Options/DockerContainerCreateOptions.Generated.cs
index 331cfb3aff..f8ca72e0f2 100644
--- a/src/ModularPipelines.Docker/Options/DockerContainerCreateOptions.Generated.cs
+++ b/src/ModularPipelines.Docker/Options/DockerContainerCreateOptions.Generated.cs
@@ -242,7 +242,7 @@ public record DockerContainerCreateOptions : DockerOptions
/// Time between running the check (ms|s|m|h) (default 0s)
///
[CliOption("--health-interval", Format = OptionFormat.EqualsSeparated)]
- public DockerContainerCreateHealthInterval? HealthInterval { get; set; }
+ public string? HealthInterval { get; set; }
///
/// Consecutive failures needed to report unhealthy
@@ -254,19 +254,19 @@ public record DockerContainerCreateOptions : DockerOptions
/// Time between running the check during the start period (ms|s|m|h) (default 0s)
///
[CliOption("--health-start-interval", Format = OptionFormat.EqualsSeparated)]
- public DockerContainerCreateHealthStartInterval? HealthStartInterval { get; set; }
+ public string? HealthStartInterval { get; set; }
///
/// Start period for the container to initialize before starting health-retries countdown (ms|s|m|h) (default 0s)
///
[CliOption("--health-start-period", Format = OptionFormat.EqualsSeparated)]
- public DockerContainerCreateHealthStartPeriod? HealthStartPeriod { get; set; }
+ public string? HealthStartPeriod { get; set; }
///
/// Maximum time to allow one check to run (ms|s|m|h) (default 0s)
///
[CliOption("--health-timeout", Format = OptionFormat.EqualsSeparated)]
- public DockerContainerCreateHealthTimeout? HealthTimeout { get; set; }
+ public string? HealthTimeout { get; set; }
///
/// Print usage
diff --git a/src/ModularPipelines.Docker/Options/DockerContainerRunOptions.Generated.cs b/src/ModularPipelines.Docker/Options/DockerContainerRunOptions.Generated.cs
index 4d37e1c953..5281a33679 100644
--- a/src/ModularPipelines.Docker/Options/DockerContainerRunOptions.Generated.cs
+++ b/src/ModularPipelines.Docker/Options/DockerContainerRunOptions.Generated.cs
@@ -254,7 +254,7 @@ public record DockerContainerRunOptions : DockerOptions
/// Time between running the check (ms|s|m|h) (default 0s)
///
[CliOption("--health-interval", Format = OptionFormat.EqualsSeparated)]
- public DockerContainerRunHealthInterval? HealthInterval { get; set; }
+ public string? HealthInterval { get; set; }
///
/// Consecutive failures needed to report unhealthy
@@ -266,19 +266,19 @@ public record DockerContainerRunOptions : DockerOptions
/// Time between running the check during the start period (ms|s|m|h) (default 0s)
///
[CliOption("--health-start-interval", Format = OptionFormat.EqualsSeparated)]
- public DockerContainerRunHealthStartInterval? HealthStartInterval { get; set; }
+ public string? HealthStartInterval { get; set; }
///
/// Start period for the container to initialize before starting health-retries countdown (ms|s|m|h) (default 0s)
///
[CliOption("--health-start-period", Format = OptionFormat.EqualsSeparated)]
- public DockerContainerRunHealthStartPeriod? HealthStartPeriod { get; set; }
+ public string? HealthStartPeriod { get; set; }
///
/// Maximum time to allow one check to run (ms|s|m|h) (default 0s)
///
[CliOption("--health-timeout", Format = OptionFormat.EqualsSeparated)]
- public DockerContainerRunHealthTimeout? HealthTimeout { get; set; }
+ public string? HealthTimeout { get; set; }
///
/// Print usage
diff --git a/src/ModularPipelines.Docker/Options/DockerCreateOptions.Generated.cs b/src/ModularPipelines.Docker/Options/DockerCreateOptions.Generated.cs
index 1f0d057573..563eceb9d7 100644
--- a/src/ModularPipelines.Docker/Options/DockerCreateOptions.Generated.cs
+++ b/src/ModularPipelines.Docker/Options/DockerCreateOptions.Generated.cs
@@ -242,7 +242,7 @@ public record DockerCreateOptions : DockerOptions
/// Time between running the check (ms|s|m|h) (default 0s)
///
[CliOption("--health-interval", Format = OptionFormat.EqualsSeparated)]
- public DockerCreateHealthInterval? HealthInterval { get; set; }
+ public string? HealthInterval { get; set; }
///
/// Consecutive failures needed to report unhealthy
@@ -254,19 +254,19 @@ public record DockerCreateOptions : DockerOptions
/// Time between running the check during the start period (ms|s|m|h) (default 0s)
///
[CliOption("--health-start-interval", Format = OptionFormat.EqualsSeparated)]
- public DockerCreateHealthStartInterval? HealthStartInterval { get; set; }
+ public string? HealthStartInterval { get; set; }
///
/// Start period for the container to initialize before starting health-retries countdown (ms|s|m|h) (default 0s)
///
[CliOption("--health-start-period", Format = OptionFormat.EqualsSeparated)]
- public DockerCreateHealthStartPeriod? HealthStartPeriod { get; set; }
+ public string? HealthStartPeriod { get; set; }
///
/// Maximum time to allow one check to run (ms|s|m|h) (default 0s)
///
[CliOption("--health-timeout", Format = OptionFormat.EqualsSeparated)]
- public DockerCreateHealthTimeout? HealthTimeout { get; set; }
+ public string? HealthTimeout { get; set; }
///
/// Print usage
diff --git a/src/ModularPipelines.Docker/Options/DockerRunOptions.Generated.cs b/src/ModularPipelines.Docker/Options/DockerRunOptions.Generated.cs
index e8fd569163..2483460263 100644
--- a/src/ModularPipelines.Docker/Options/DockerRunOptions.Generated.cs
+++ b/src/ModularPipelines.Docker/Options/DockerRunOptions.Generated.cs
@@ -254,7 +254,7 @@ public record DockerRunOptions : DockerOptions
/// Time between running the check (ms|s|m|h) (default 0s)
///
[CliOption("--health-interval", Format = OptionFormat.EqualsSeparated)]
- public DockerRunHealthInterval? HealthInterval { get; set; }
+ public string? HealthInterval { get; set; }
///
/// Consecutive failures needed to report unhealthy
@@ -266,19 +266,19 @@ public record DockerRunOptions : DockerOptions
/// Time between running the check during the start period (ms|s|m|h) (default 0s)
///
[CliOption("--health-start-interval", Format = OptionFormat.EqualsSeparated)]
- public DockerRunHealthStartInterval? HealthStartInterval { get; set; }
+ public string? HealthStartInterval { get; set; }
///
/// Start period for the container to initialize before starting health-retries countdown (ms|s|m|h) (default 0s)
///
[CliOption("--health-start-period", Format = OptionFormat.EqualsSeparated)]
- public DockerRunHealthStartPeriod? HealthStartPeriod { get; set; }
+ public string? HealthStartPeriod { get; set; }
///
/// Maximum time to allow one check to run (ms|s|m|h) (default 0s)
///
[CliOption("--health-timeout", Format = OptionFormat.EqualsSeparated)]
- public DockerRunHealthTimeout? HealthTimeout { get; set; }
+ public string? HealthTimeout { get; set; }
///
/// Print usage
diff --git a/src/ModularPipelines.Docker/Options/DockerSwarmInitOptions.Generated.cs b/src/ModularPipelines.Docker/Options/DockerSwarmInitOptions.Generated.cs
index 6ea9170079..0dccda4a14 100644
--- a/src/ModularPipelines.Docker/Options/DockerSwarmInitOptions.Generated.cs
+++ b/src/ModularPipelines.Docker/Options/DockerSwarmInitOptions.Generated.cs
@@ -43,7 +43,7 @@ public record DockerSwarmInitOptions : DockerOptions
/// Validity period for node certificates (ns|us|ms|s|m|h) (default 2160h0m0s)
///
[CliOption("--cert-expiry", Format = OptionFormat.EqualsSeparated)]
- public DockerSwarmInitCertExpiry? CertExpiry { get; set; }
+ public string? CertExpiry { get; set; }
///
/// Address or interface to use for data path traffic (format: "<ip|interface>")
@@ -73,7 +73,7 @@ public record DockerSwarmInitOptions : DockerOptions
/// Dispatcher heartbeat period (ns|us|ms|s|m|h) (default 5s)
///
[CliOption("--dispatcher-heartbeat", Format = OptionFormat.EqualsSeparated)]
- public DockerSwarmInitDispatcherHeartbeat? DispatcherHeartbeat { get; set; }
+ public string? DispatcherHeartbeat { get; set; }
///
/// Specifications of one or more certificate signing endpoints
diff --git a/src/ModularPipelines.Minikube/Enums/MinikubeDockerEnvOutput.Generated.cs b/src/ModularPipelines.Minikube/Enums/MinikubeDockerEnvOutput.Generated.cs
index 0fcd6ba188..b81e3f1593 100644
--- a/src/ModularPipelines.Minikube/Enums/MinikubeDockerEnvOutput.Generated.cs
+++ b/src/ModularPipelines.Minikube/Enums/MinikubeDockerEnvOutput.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Minikube.Enums;
@@ -16,12 +16,12 @@ namespace ModularPipelines.Minikube.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum MinikubeDockerEnvOutput
{
- [Description("text")]
+ [EnumValue("text")]
Text,
- [Description("yaml")]
+ [EnumValue("yaml")]
Yaml,
- [Description("json")]
+ [EnumValue("json")]
Json
}
diff --git a/src/ModularPipelines.Minikube/Enums/MinikubeImageLsFormat.Generated.cs b/src/ModularPipelines.Minikube/Enums/MinikubeImageLsFormat.Generated.cs
index 057dc5be54..83d0144960 100644
--- a/src/ModularPipelines.Minikube/Enums/MinikubeImageLsFormat.Generated.cs
+++ b/src/ModularPipelines.Minikube/Enums/MinikubeImageLsFormat.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Minikube.Enums;
@@ -16,15 +16,15 @@ namespace ModularPipelines.Minikube.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum MinikubeImageLsFormat
{
- [Description("short")]
+ [EnumValue("short")]
Short,
- [Description("table")]
+ [EnumValue("table")]
Table,
- [Description("json")]
+ [EnumValue("json")]
Json,
- [Description("yaml")]
+ [EnumValue("yaml")]
Yaml
}
diff --git a/src/ModularPipelines.Minikube/Enums/MinikubeProfileListOutput.Generated.cs b/src/ModularPipelines.Minikube/Enums/MinikubeProfileListOutput.Generated.cs
index eada73e686..2eb69d2487 100644
--- a/src/ModularPipelines.Minikube/Enums/MinikubeProfileListOutput.Generated.cs
+++ b/src/ModularPipelines.Minikube/Enums/MinikubeProfileListOutput.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Minikube.Enums;
@@ -16,9 +16,9 @@ namespace ModularPipelines.Minikube.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum MinikubeProfileListOutput
{
- [Description("json")]
+ [EnumValue("json")]
Json,
- [Description("table")]
+ [EnumValue("table")]
Table
}
diff --git a/src/ModularPipelines.Minikube/Enums/MinikubeServiceListOutput.Generated.cs b/src/ModularPipelines.Minikube/Enums/MinikubeServiceListOutput.Generated.cs
index 48525b33d3..7dab1cdddf 100644
--- a/src/ModularPipelines.Minikube/Enums/MinikubeServiceListOutput.Generated.cs
+++ b/src/ModularPipelines.Minikube/Enums/MinikubeServiceListOutput.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Minikube.Enums;
@@ -16,9 +16,9 @@ namespace ModularPipelines.Minikube.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum MinikubeServiceListOutput
{
- [Description("json")]
+ [EnumValue("json")]
Json,
- [Description("table")]
+ [EnumValue("table")]
Table
}
diff --git a/src/ModularPipelines.Minikube/Enums/MinikubeStartDriver.Generated.cs b/src/ModularPipelines.Minikube/Enums/MinikubeStartDriver.Generated.cs
index ec8fd7c294..cd06bf623e 100644
--- a/src/ModularPipelines.Minikube/Enums/MinikubeStartDriver.Generated.cs
+++ b/src/ModularPipelines.Minikube/Enums/MinikubeStartDriver.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Minikube.Enums;
@@ -16,30 +16,30 @@ namespace ModularPipelines.Minikube.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum MinikubeStartDriver
{
- [Description("virtualbox")]
+ [EnumValue("virtualbox")]
Virtualbox,
- [Description("kvm2")]
+ [EnumValue("kvm2")]
Kvm2,
- [Description("qemu2")]
+ [EnumValue("qemu2")]
Qemu2,
- [Description("qemu")]
+ [EnumValue("qemu")]
Qemu,
- [Description("vmware")]
+ [EnumValue("vmware")]
Vmware,
- [Description("none")]
+ [EnumValue("none")]
None,
- [Description("docker")]
+ [EnumValue("docker")]
Docker,
- [Description("podman")]
+ [EnumValue("podman")]
Podman,
- [Description("ssh")]
+ [EnumValue("ssh")]
Ssh
}
diff --git a/src/ModularPipelines.Minikube/Enums/MinikubeStartHostOnlyNicType.Generated.cs b/src/ModularPipelines.Minikube/Enums/MinikubeStartHostOnlyNicType.Generated.cs
index f5da0ee273..c85c6bbca1 100644
--- a/src/ModularPipelines.Minikube/Enums/MinikubeStartHostOnlyNicType.Generated.cs
+++ b/src/ModularPipelines.Minikube/Enums/MinikubeStartHostOnlyNicType.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Minikube.Enums;
@@ -16,21 +16,21 @@ namespace ModularPipelines.Minikube.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum MinikubeStartHostOnlyNicType
{
- [Description("Am79C970A")]
+ [EnumValue("Am79C970A")]
Am79c970a,
- [Description("Am79C973")]
+ [EnumValue("Am79C973")]
Am79c973,
- [Description("82540EM")]
+ [EnumValue("82540EM")]
__82540em,
- [Description("82543GC")]
+ [EnumValue("82543GC")]
__82543gc,
- [Description("82545EM")]
+ [EnumValue("82545EM")]
__82545em,
- [Description("virtio")]
+ [EnumValue("virtio")]
Virtio
}
diff --git a/src/ModularPipelines.Minikube/Enums/MinikubeStartNatNicType.Generated.cs b/src/ModularPipelines.Minikube/Enums/MinikubeStartNatNicType.Generated.cs
index fd4c0125c5..52c14cca03 100644
--- a/src/ModularPipelines.Minikube/Enums/MinikubeStartNatNicType.Generated.cs
+++ b/src/ModularPipelines.Minikube/Enums/MinikubeStartNatNicType.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Minikube.Enums;
@@ -16,21 +16,21 @@ namespace ModularPipelines.Minikube.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum MinikubeStartNatNicType
{
- [Description("Am79C970A")]
+ [EnumValue("Am79C970A")]
Am79c970a,
- [Description("Am79C973")]
+ [EnumValue("Am79C973")]
Am79c973,
- [Description("82540EM")]
+ [EnumValue("82540EM")]
__82540em,
- [Description("82543GC")]
+ [EnumValue("82543GC")]
__82543gc,
- [Description("82545EM")]
+ [EnumValue("82545EM")]
__82545em,
- [Description("virtio")]
+ [EnumValue("virtio")]
Virtio
}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditOidcAwsPolicyArn.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditOidcAwsPolicyArn.Generated.cs
deleted file mode 100644
index 5dcaa951d6..0000000000
--- a/src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditOidcAwsPolicyArn.Generated.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Pulumi.Enums;
-
-///
-/// Allowed values for the --oidcawspolicyarn option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum PulumiDeploymentSettingsEditOidcAwsPolicyArn
-{
- [Description("repeatable")]
- Repeatable,
-
- [Description("comma-separated")]
- CommaSeparated
-}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditPathFilter.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditPathFilter.Generated.cs
deleted file mode 100644
index 243bcb9655..0000000000
--- a/src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditPathFilter.Generated.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Pulumi.Enums;
-
-///
-/// Allowed values for the --pathfilter option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum PulumiDeploymentSettingsEditPathFilter
-{
- [Description("repeatable")]
- Repeatable,
-
- [Description("comma-separated")]
- CommaSeparated
-}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditRemoveEnv.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditRemoveEnv.Generated.cs
deleted file mode 100644
index 828b255bf8..0000000000
--- a/src/ModularPipelines.Pulumi/Enums/PulumiDeploymentSettingsEditRemoveEnv.Generated.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-//
-// This file was generated by ModularPipelines.OptionsGenerator.
-// Do not edit this file manually.
-//
-
-#nullable enable
-
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-
-namespace ModularPipelines.Pulumi.Enums;
-
-///
-/// Allowed values for the --removeenv option.
-///
-[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
-public enum PulumiDeploymentSettingsEditRemoveEnv
-{
- [Description("repeatable")]
- Repeatable,
-
- [Description("comma-separated")]
- CommaSeparated
-}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiInsightsAccountNewProvider.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiInsightsAccountNewProvider.Generated.cs
index 4159f18f1c..50f177feba 100644
--- a/src/ModularPipelines.Pulumi/Enums/PulumiInsightsAccountNewProvider.Generated.cs
+++ b/src/ModularPipelines.Pulumi/Enums/PulumiInsightsAccountNewProvider.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Pulumi.Enums;
@@ -16,18 +16,18 @@ namespace ModularPipelines.Pulumi.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum PulumiInsightsAccountNewProvider
{
- [Description("aws")]
+ [EnumValue("aws")]
Aws,
- [Description("gcp")]
+ [EnumValue("gcp")]
Gcp,
- [Description("azure-native")]
+ [EnumValue("azure-native")]
AzureNative,
- [Description("oci")]
+ [EnumValue("oci")]
Oci,
- [Description("kubernetes")]
+ [EnumValue("kubernetes")]
Kubernetes
}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiInsightsAccountNewScanSchedule.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiInsightsAccountNewScanSchedule.Generated.cs
index b5fe11c3cd..92b52d3196 100644
--- a/src/ModularPipelines.Pulumi/Enums/PulumiInsightsAccountNewScanSchedule.Generated.cs
+++ b/src/ModularPipelines.Pulumi/Enums/PulumiInsightsAccountNewScanSchedule.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Pulumi.Enums;
@@ -16,12 +16,12 @@ namespace ModularPipelines.Pulumi.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum PulumiInsightsAccountNewScanSchedule
{
- [Description("none")]
+ [EnumValue("none")]
None,
- [Description("12h")]
+ [EnumValue("12h")]
__12h,
- [Description("daily")]
+ [EnumValue("daily")]
Daily
}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiOrgAuditLogExportFormat.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiOrgAuditLogExportFormat.Generated.cs
index b7f84f19e6..144cdf6ffa 100644
--- a/src/ModularPipelines.Pulumi/Enums/PulumiOrgAuditLogExportFormat.Generated.cs
+++ b/src/ModularPipelines.Pulumi/Enums/PulumiOrgAuditLogExportFormat.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Pulumi.Enums;
@@ -16,9 +16,9 @@ namespace ModularPipelines.Pulumi.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum PulumiOrgAuditLogExportFormat
{
- [Description("csv")]
+ [EnumValue("csv")]
Csv,
- [Description("cef")]
+ [EnumValue("cef")]
Cef
}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiOrgUsageGetGranularity.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiOrgUsageGetGranularity.Generated.cs
index 0f3e9aab69..7845d07450 100644
--- a/src/ModularPipelines.Pulumi/Enums/PulumiOrgUsageGetGranularity.Generated.cs
+++ b/src/ModularPipelines.Pulumi/Enums/PulumiOrgUsageGetGranularity.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Pulumi.Enums;
@@ -16,12 +16,12 @@ namespace ModularPipelines.Pulumi.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum PulumiOrgUsageGetGranularity
{
- [Description("hourly")]
+ [EnumValue("hourly")]
Hourly,
- [Description("daily")]
+ [EnumValue("daily")]
Daily,
- [Description("monthly")]
+ [EnumValue("monthly")]
Monthly
}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleEditOperation.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleEditOperation.Generated.cs
index 77193a428e..a16a94bc33 100644
--- a/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleEditOperation.Generated.cs
+++ b/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleEditOperation.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Pulumi.Enums;
@@ -16,15 +16,15 @@ namespace ModularPipelines.Pulumi.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum PulumiStackScheduleEditOperation
{
- [Description("update")]
+ [EnumValue("update")]
Update,
- [Description("preview")]
+ [EnumValue("preview")]
Preview,
- [Description("refresh")]
+ [EnumValue("refresh")]
Refresh,
- [Description("destroy")]
+ [EnumValue("destroy")]
Destroy
}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleNewKind.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleNewKind.Generated.cs
index 39f15c6d60..1120431c47 100644
--- a/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleNewKind.Generated.cs
+++ b/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleNewKind.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Pulumi.Enums;
@@ -16,12 +16,12 @@ namespace ModularPipelines.Pulumi.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum PulumiStackScheduleNewKind
{
- [Description("raw")]
+ [EnumValue("raw")]
Raw,
- [Description("drift")]
+ [EnumValue("drift")]
Drift,
- [Description("ttl")]
+ [EnumValue("ttl")]
Ttl
}
diff --git a/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleNewOperation.Generated.cs b/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleNewOperation.Generated.cs
index 949f435f13..8a14ff3088 100644
--- a/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleNewOperation.Generated.cs
+++ b/src/ModularPipelines.Pulumi/Enums/PulumiStackScheduleNewOperation.Generated.cs
@@ -6,7 +6,7 @@
#nullable enable
using System.CodeDom.Compiler;
-using System.ComponentModel;
+using ModularPipelines.Attributes;
namespace ModularPipelines.Pulumi.Enums;
@@ -16,15 +16,15 @@ namespace ModularPipelines.Pulumi.Enums;
[GeneratedCode("ModularPipelines.OptionsGenerator", "2.0.0")]
public enum PulumiStackScheduleNewOperation
{
- [Description("update")]
+ [EnumValue("update")]
Update,
- [Description("preview")]
+ [EnumValue("preview")]
Preview,
- [Description("refresh")]
+ [EnumValue("refresh")]
Refresh,
- [Description("destroy")]
+ [EnumValue("destroy")]
Destroy
}
diff --git a/src/ModularPipelines.Pulumi/Options/PulumiDeploymentSettingsEditOptions.Generated.cs b/src/ModularPipelines.Pulumi/Options/PulumiDeploymentSettingsEditOptions.Generated.cs
index 68f8ceb485..81b8809ee6 100644
--- a/src/ModularPipelines.Pulumi/Options/PulumiDeploymentSettingsEditOptions.Generated.cs
+++ b/src/ModularPipelines.Pulumi/Options/PulumiDeploymentSettingsEditOptions.Generated.cs
@@ -97,7 +97,7 @@ public record PulumiDeploymentSettingsEditOptions : PulumiOptions
/// AWS OIDC: replace the session policy ARN list (repeatable, comma-separated)
///
[CliOption("--oidc-aws-policy-arn", Format = OptionFormat.EqualsSeparated, AllowMultiple = true)]
- public PulumiDeploymentSettingsEditOidcAwsPolicyArn? OidcAwsPolicyArn { get; set; }
+ public IEnumerable? OidcAwsPolicyArn { get; set; }
///
/// AWS OIDC: IAM role ARN to assume
@@ -188,7 +188,7 @@ public record PulumiDeploymentSettingsEditOptions : PulumiOptions
/// GitHub: replace the path filter list (repeatable, comma-separated)
///
[CliOption("--path-filter", Format = OptionFormat.EqualsSeparated, AllowMultiple = true)]
- public PulumiDeploymentSettingsEditPathFilter? PathFilter { get; set; }
+ public IEnumerable? PathFilter { get; set; }
///
/// GitHub: use this stack as a template for PR review stacks
@@ -218,7 +218,7 @@ public record PulumiDeploymentSettingsEditOptions : PulumiOptions
/// Delete an environment variable by key (repeatable, comma-separated)
///
[CliOption("--remove-env", Format = OptionFormat.EqualsSeparated, AllowMultiple = true)]
- public PulumiDeploymentSettingsEditRemoveEnv? RemoveEnv { get; set; }
+ public IEnumerable? RemoveEnv { get; set; }
///
/// Deployment runner pool ID; empty string clears it to the Pulumi-hosted pool
diff --git a/tools/ModularPipelines.OptionsGenerator/scripts/Test-GeneratedEnumAttributes.ps1 b/tools/ModularPipelines.OptionsGenerator/scripts/Test-GeneratedEnumAttributes.ps1
new file mode 100644
index 0000000000..36bd430491
--- /dev/null
+++ b/tools/ModularPipelines.OptionsGenerator/scripts/Test-GeneratedEnumAttributes.ps1
@@ -0,0 +1,22 @@
+$ErrorActionPreference = 'Stop'
+
+$repositoryRoot = Resolve-Path (Join-Path $PSScriptRoot '../../..')
+$legacyFiles = @(
+ & git -C $repositoryRoot grep -l --fixed-strings '[Description(' -- 'src/**/*.Generated.cs' 2>$null
+)
+$grepExitCode = $LASTEXITCODE
+
+if ($grepExitCode -gt 1) {
+ throw "git grep failed with exit code $grepExitCode."
+}
+
+if ($legacyFiles.Count -eq 0) {
+ Write-Host 'Generated enum metadata uses EnumValueAttribute.'
+ exit 0
+}
+
+Write-Error (
+ "Generated files still use DescriptionAttribute for CLI enum values:`n{0}" -f
+ ($legacyFiles -join "`n")
+)
+exit 1
diff --git a/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/Scrapers/Base/CliDocumentationScraperBaseTests.cs b/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/Scrapers/Base/CliDocumentationScraperBaseTests.cs
new file mode 100644
index 0000000000..f431ffbb3c
--- /dev/null
+++ b/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/Scrapers/Base/CliDocumentationScraperBaseTests.cs
@@ -0,0 +1,47 @@
+using Microsoft.Extensions.Logging.Abstractions;
+using ModularPipelines.OptionsGenerator.Models;
+using ModularPipelines.OptionsGenerator.Scrapers.Base;
+
+namespace ModularPipelines.OptionsGenerator.Tests.Scrapers.Base;
+
+public class CliDocumentationScraperBaseTests
+{
+ [Test]
+ [Arguments("ms|s|m|h")]
+ [Arguments("ns|us|ms|s|m|h")]
+ public async Task DetectEnumValues_Does_Not_Treat_Duration_Units_As_Complete_Values(string valueType)
+ {
+ var result = TestDocumentationScraper.DetectEnumValues(valueType);
+
+ await Assert.That(result).IsNull();
+ }
+
+ [Test]
+ public async Task DetectEnumValues_Still_Recognizes_Actual_Enum_Values()
+ {
+ var result = TestDocumentationScraper.DetectEnumValues("plain|json|tty");
+
+ await Assert.That(result).IsNotNull();
+ await Assert.That(result!.Values.Select(value => value.CliValue))
+ .IsEquivalentTo(["plain", "json", "tty"]);
+ }
+
+ private sealed class TestDocumentationScraper()
+ : CliDocumentationScraperBase(new HttpClient(), NullLogger.Instance)
+ {
+ public override string ToolName => "test";
+ public override string NamespacePrefix => "Test";
+ public override string TargetNamespace => "ModularPipelines.Test";
+ public override string OutputDirectory => "src/ModularPipelines.Test";
+
+ public static CliEnumDefinition? DetectEnumValues(string valueType)
+ {
+ return DetectEnumValues("Value", "TestOptions", valueType, null);
+ }
+
+ public override Task ScrapeAsync(CancellationToken cancellationToken = default)
+ {
+ throw new NotSupportedException();
+ }
+ }
+}
diff --git a/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator/Scrapers/Base/CliDocumentationScraperBase.cs b/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator/Scrapers/Base/CliDocumentationScraperBase.cs
index 95a235ac56..65d8bbc6a6 100644
--- a/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator/Scrapers/Base/CliDocumentationScraperBase.cs
+++ b/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator/Scrapers/Base/CliDocumentationScraperBase.cs
@@ -214,6 +214,13 @@ protected static bool DetectNumericType(string? valueType)
.Where(v => !string.IsNullOrEmpty(v) && v.All(c => char.IsLetterOrDigit(c) || c == '-' || c == '_'))
.ToList();
+ // Duration placeholders describe suffixes for a free-form value such as "30s";
+ // they are not the complete values accepted by the option.
+ if (values.Count >= 2 && values.All(IsDurationUnit))
+ {
+ return null;
+ }
+
if (values.Count >= 2)
{
return CreateEnumDefinition(propertyName, commandClassName, values);
@@ -239,6 +246,11 @@ protected static bool DetectNumericType(string? valueType)
return null;
}
+ private static bool IsDurationUnit(string value)
+ {
+ return value.ToLowerInvariant() is "ns" or "us" or "ms" or "s" or "m" or "h" or "d";
+ }
+
private static CliEnumDefinition CreateEnumDefinition(string propertyName, string commandClassName, List values)
{
// Generate command-specific enum name
From bda47b1ef7d0d28c7cd939e23855132cf443765e Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Thu, 30 Jul 2026 18:30:06 +0100
Subject: [PATCH 2/3] test(options): guard repeatability parsing
Pin Pulumi repeatability annotations as string lists so regenerated options cannot recreate annotation-only enums.
---
.../DescriptionEnumValueParserTests.cs | 11 +++++++++++
.../TypeDetection/HeuristicTypeDetectorTests.cs | 14 ++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/TypeDetection/DescriptionEnumValueParserTests.cs b/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/TypeDetection/DescriptionEnumValueParserTests.cs
index 6670bab93d..58bf5962a7 100644
--- a/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/TypeDetection/DescriptionEnumValueParserTests.cs
+++ b/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/TypeDetection/DescriptionEnumValueParserTests.cs
@@ -12,6 +12,17 @@ public async Task TryParse_Rejects_Explanatory_Parenthesized_Lists()
await Assert.That(result).IsNull();
}
+ [Test]
+ [Arguments("AWS OIDC: replace the session policy ARN list (repeatable, comma-separated)")]
+ [Arguments("GitHub: replace the path filter list (repeatable, comma-separated)")]
+ [Arguments("Delete an environment variable by key (repeatable, comma-separated)")]
+ public async Task TryParse_Rejects_Repeatability_Annotations(string description)
+ {
+ var result = DescriptionEnumValueParser.TryParse(description);
+
+ await Assert.That(result).IsNull();
+ }
+
[Test]
[Arguments("Output format (table, json, yaml)", "table,json,yaml")]
[Arguments("Log types to enable (all, none, api, audit)", "all,none,api,audit")]
diff --git a/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/TypeDetection/HeuristicTypeDetectorTests.cs b/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/TypeDetection/HeuristicTypeDetectorTests.cs
index c930e8fa76..dde850855c 100644
--- a/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/TypeDetection/HeuristicTypeDetectorTests.cs
+++ b/tools/ModularPipelines.OptionsGenerator/src/ModularPipelines.OptionsGenerator.Tests/TypeDetection/HeuristicTypeDetectorTests.cs
@@ -416,6 +416,20 @@ public async Task DetectType_Returns_StringList_For_MultiValue_Description_Patte
await Assert.That(result.Confidence).IsEqualTo(80);
}
+ [Test]
+ [Arguments("AWS OIDC: replace the session policy ARN list (repeatable, comma-separated)")]
+ [Arguments("GitHub: replace the path filter list (repeatable, comma-separated)")]
+ [Arguments("Delete an environment variable by key (repeatable, comma-separated)")]
+ public async Task DetectType_Treats_Repeatability_Annotations_As_StringList(string description)
+ {
+ var context = CreateContext("--value", description: description);
+
+ var result = await _detector.DetectTypeAsync(context);
+
+ await Assert.That(result.Type).IsEqualTo(CliOptionType.StringList);
+ await Assert.That(result.EnumValues).IsNull();
+ }
+
#endregion
#region Value Option Detection Tests - High Confidence Patterns
From 45a8392f93d21e39d4e3c62c82516cd86a3f5898 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Thu, 30 Jul 2026 20:30:43 +0100
Subject: [PATCH 3/3] test(docker): expect canonical enum value
---
.../Helpers/DockerBuilderCompatibilityTests.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/ModularPipelines.Docker.UnitTests/Helpers/DockerBuilderCompatibilityTests.cs b/test/ModularPipelines.Docker.UnitTests/Helpers/DockerBuilderCompatibilityTests.cs
index c133999a26..6436423104 100644
--- a/test/ModularPipelines.Docker.UnitTests/Helpers/DockerBuilderCompatibilityTests.cs
+++ b/test/ModularPipelines.Docker.UnitTests/Helpers/DockerBuilderCompatibilityTests.cs
@@ -102,7 +102,7 @@ public async Task BuilderEnumOptionRendersCanonicalSwitch()
.GetCommandModel(typeof(DockerBuilderHistoryLogsOptions));
var arguments = new CommandArgumentBuilder().BuildArguments(model, options);
- await Assert.That(arguments).IsEquivalentTo(["--progress=Plain"]);
+ await Assert.That(arguments).IsEquivalentTo(["--progress=plain"]);
}
[Test]