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]