diff --git a/Directory.Packages.props b/Directory.Packages.props index 99a68241b..9eae936ab 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -22,7 +22,7 @@ - + @@ -30,8 +30,8 @@ - - + + diff --git a/appveyor.yml b/appveyor.yml index decd911ec..19d5c7037 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -37,7 +37,7 @@ environment: PublicNuGetApiKey: secure: AzhHrKZGYyWnvMtPg06Q7PMJPp47dl5NxAHaE9ZB9tjIWVqmySx3F26YtVhRSPGa GitHubReleaseGitHubToken: - secure: a5UfxXiDEere9GkCCN9TURaC8CmN/ZaqWIeoHbHNshmXWLedwrEAdwGNzPf3dusKEykOMB7T/fIorZHPIqSRuuR3JsMya/3zPrvozT5o1A5qf6LpNAtWpdB20+3rvupZ + secure: a5UfxXiDEere9GkCCN9TUUq2+8QHAJoeVpZudQZXdWyloZWE5xKOkqzpxdMoYDPSxrVbWxjXbk1Xe9p0OydwuGVnr/3DC//BguNeGtFddbyMWlAiX36XvD1ZGEgP+ZIN SignPathApiToken: secure: uQTH2MxpqiqWTy7EJkjtNc43ipG17EUOQN99QsODRNgtNEcikDaP0t4ylekK/ibn TwitterConsumerKey: diff --git a/build/Build.CI.AppVeyor.cs b/build/Build.CI.AppVeyor.cs index 1c3099eda..78b1635ee 100644 --- a/build/Build.CI.AppVeyor.cs +++ b/build/Build.CI.AppVeyor.cs @@ -35,7 +35,7 @@ InvokedTargets = new[] { nameof(ITest.Test), nameof(IPack.Pack) }, Secrets = new string[0])] [AppVeyorSecret(nameof(PublicNuGetApiKey), "AzhHrKZGYyWnvMtPg06Q7PMJPp47dl5NxAHaE9ZB9tjIWVqmySx3F26YtVhRSPGa")] -[AppVeyorSecret(ICreateGitHubRelease.GitHubRelease + nameof(ICreateGitHubRelease.GitHubToken), "a5UfxXiDEere9GkCCN9TURaC8CmN/ZaqWIeoHbHNshmXWLedwrEAdwGNzPf3dusKEykOMB7T/fIorZHPIqSRuuR3JsMya/3zPrvozT5o1A5qf6LpNAtWpdB20+3rvupZ")] +[AppVeyorSecret(ICreateGitHubRelease.GitHubRelease + nameof(ICreateGitHubRelease.GitHubToken), "a5UfxXiDEere9GkCCN9TUUq2+8QHAJoeVpZudQZXdWyloZWE5xKOkqzpxdMoYDPSxrVbWxjXbk1Xe9p0OydwuGVnr/3DC//BguNeGtFddbyMWlAiX36XvD1ZGEgP+ZIN")] [AppVeyorSecret(ISignPackages.SignPath + nameof(ISignPackages.ApiToken), "uQTH2MxpqiqWTy7EJkjtNc43ipG17EUOQN99QsODRNgtNEcikDaP0t4ylekK/ibn")] [AppVeyorSecret(IHazTwitterCredentials.Twitter + nameof(IHazTwitterCredentials.ConsumerKey), "T61zL4r+xtyj7b0aOGYCsyixrXHooXE759T8z3M67Lw=")] [AppVeyorSecret(IHazTwitterCredentials.Twitter + nameof(IHazTwitterCredentials.ConsumerSecret), "CZwdlO4PHT51Xr0Pe/mT6WpfBzQXsL0C3yWfHgXqdYrf22rx8ePEt5qpszWckbHE5Vh5ErtVfIAQgLeFrqe2Gg==")] diff --git a/source/Nuke.Common.Tests/SettingsTest.cs b/source/Nuke.Common.Tests/SettingsTest.cs index 350d5824b..e5435124d 100644 --- a/source/Nuke.Common.Tests/SettingsTest.cs +++ b/source/Nuke.Common.Tests/SettingsTest.cs @@ -142,9 +142,9 @@ public void TestDocker() { Assert(new DockerAttachSettings() .SetDetachKeys("detach-keys") - .SetContainer("container") - .SetLogLevel(DockerLogLevel.debug), - "attach --detach-keys detach-keys container --log-level debug"); + .SetLogLevel(DockerLogLevel.debug) + .SetContainer("container"), + "attach --detach-keys detach-keys --log-level debug container"); } [Fact] diff --git a/source/Nuke.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs b/source/Nuke.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs index b4b023856..419fe44bb 100644 --- a/source/Nuke.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs +++ b/source/Nuke.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs @@ -44,19 +44,19 @@ public partial class AzureSignToolTasks : ToolTasks, IRequireNuGetPackage public partial class AzureSignToolSettings : ToolOptions { /// A fully qualified URL of the key vault with the certificate that will be used for signing. An example value might be https://my-vault.vault.azure.net. - [Argument(Format = "--azure-key-vault-url {value}")] public string KeyVaultUrl => Get(() => KeyVaultUrl); + [Argument(Format = "--azure-key-vault-url {value}", Secret = false)] public string KeyVaultUrl => Get(() => KeyVaultUrl); /// This is the client ID used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option. If this parameter is supplied, --azure-key-vault-client-secret and --azure-key-vault-tenant-id must be supplied as well. - [Argument(Format = "--azure-key-vault-client-id {value}")] public string KeyVaultClientId => Get(() => KeyVaultClientId); + [Argument(Format = "--azure-key-vault-client-id {value}", Secret = false)] public string KeyVaultClientId => Get(() => KeyVaultClientId); /// This is the client secret used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option or when using managed identities with --azure-key-vault-managed-identity. If this parameter is supplied, --azure-key-vault-client-id and --azure-key-vault-tenant-id must be supplied as well. [Argument(Format = "--azure-key-vault-client-secret {value}", Secret = true)] public string KeyVaultClientSecret => Get(() => KeyVaultClientSecret); /// This is the tenant id used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option or when using managed identities with --azure-key-vault-managed-identity. If this parameter is supplied, --azure-key-vault-client-id and --azure-key-vault-client-secret must be supplied as well. - [Argument(Format = "--azure-key-vault-tenant-id {value}")] public string KeyVaultTenantId => Get(() => KeyVaultTenantId); + [Argument(Format = "--azure-key-vault-tenant-id {value}", Secret = false)] public string KeyVaultTenantId => Get(() => KeyVaultTenantId); /// The name of the certificate used to perform the signing operation. - [Argument(Format = "--azure-key-vault-certificate {value}")] public string KeyVaultCertificateName => Get(() => KeyVaultCertificateName); + [Argument(Format = "--azure-key-vault-certificate {value}", Secret = false)] public string KeyVaultCertificateName => Get(() => KeyVaultCertificateName); /// An access token used to authenticate to Azure. This can be used instead of the --azure-key-vault-managed-identity, --azure-key-vault-client-id and --azure-key-vault-client-secret options. This is useful if AzureSignTool is being used as part of another program that is already authenticated and has an access token to Azure. [Argument(Format = "--azure-key-vault-accesstoken {value}", Secret = true)] public string KeyVaultAccessToken => Get(() => KeyVaultAccessToken); /// Use the ambient Managed Identity to authenticate to Azure. This can be used instead of the --azure-key-vault-accesstoken, --azure-key-vault-client-id and --azure-key-vault-client-secret options. This is useful if AzureSignTool is being used on a VM/service/CLI that is configured for managed identities to Azure. - [Argument(Format = "--azure-key-vault-managed-identity")] public bool? KeyVaultManagedIdentity => Get(() => KeyVaultManagedIdentity); + [Argument(Format = "--azure-key-vault-managed-identity", Secret = false)] public bool? KeyVaultManagedIdentity => Get(() => KeyVaultManagedIdentity); /// A description of the signed content. This parameter serves the same purpose as the /d option in the Windows SDK signtool. If this parameter is not supplied, the signature will not contain a description. [Argument(Format = "--description {value}")] public string Description => Get(() => Description); /// A URL with more information of the signed content. This parameter serves the same purpose as the /du option in the Windows SDK signtool. If this parameter is not supplied, the signature will not contain a URL description. diff --git a/source/Nuke.Common/Tools/AzureSignTool/AzureSignTool.json b/source/Nuke.Common/Tools/AzureSignTool/AzureSignTool.json index 046323be5..8f6adf405 100644 --- a/source/Nuke.Common/Tools/AzureSignTool/AzureSignTool.json +++ b/source/Nuke.Common/Tools/AzureSignTool/AzureSignTool.json @@ -14,12 +14,14 @@ "name": "KeyVaultUrl", "type": "string", "format": "--azure-key-vault-url {value}", + "secret": false, "help": "A fully qualified URL of the key vault with the certificate that will be used for signing. An example value might be https://my-vault.vault.azure.net." }, { "name": "KeyVaultClientId", "type": "string", "format": "--azure-key-vault-client-id {value}", + "secret": false, "help": "This is the client ID used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option. If this parameter is supplied, --azure-key-vault-client-secret and --azure-key-vault-tenant-id must be supplied as well." }, { @@ -33,12 +35,14 @@ "name": "KeyVaultTenantId", "type": "string", "format": "--azure-key-vault-tenant-id {value}", + "secret": false, "help": "This is the tenant id used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option or when using managed identities with --azure-key-vault-managed-identity. If this parameter is supplied, --azure-key-vault-client-id and --azure-key-vault-client-secret must be supplied as well." }, { "name": "KeyVaultCertificateName", "type": "string", "format": "--azure-key-vault-certificate {value}", + "secret": false, "help": "The name of the certificate used to perform the signing operation." }, { @@ -52,6 +56,7 @@ "name": "KeyVaultManagedIdentity", "type": "bool", "format": "--azure-key-vault-managed-identity", + "secret": false, "help": "Use the ambient Managed Identity to authenticate to Azure. This can be used instead of the --azure-key-vault-accesstoken, --azure-key-vault-client-id and --azure-key-vault-client-secret options. This is useful if AzureSignTool is being used on a VM/service/CLI that is configured for managed identities to Azure." }, { diff --git a/source/Nuke.Common/Tools/DocFX/DocFX.Generated.cs b/source/Nuke.Common/Tools/DocFX/DocFX.Generated.cs index 42136cc57..2c39454b3 100644 --- a/source/Nuke.Common/Tools/DocFX/DocFX.Generated.cs +++ b/source/Nuke.Common/Tools/DocFX/DocFX.Generated.cs @@ -155,7 +155,7 @@ public partial class DocFXBuildSettings : ToolOptions /// Set the max parallelism, 0 is auto. [Argument(Format = "--maxParallelism={value}")] public int? MaxParallelism => Get(() => MaxParallelism); /// Disable default lang keyword. - [Argument(Format = "--noLangKeyword")] public bool? NoLangKeyword => Get(() => NoLangKeyword); + [Argument(Format = "--noLangKeyword", Secret = false)] public bool? NoLangKeyword => Get(() => NoLangKeyword); /// Specify the output base directory. [Argument(Format = "--output={value}")] public string OutputFolder => Get(() => OutputFolder); /// The output folder for files generated for debugging purpose when in debug mode. If not specified, it is ${TempPath}/docfx. @@ -416,7 +416,7 @@ public partial class DocFXPdfSettings : ToolOptions /// Set the max parallelism, 0 is auto. [Argument(Format = "--maxParallelism={value}")] public int? MaxParallelism => Get(() => MaxParallelism); /// Disable default lang keyword. - [Argument(Format = "--noLangKeyword")] public bool? NoLangKeyword => Get(() => NoLangKeyword); + [Argument(Format = "--noLangKeyword", Secret = false)] public bool? NoLangKeyword => Get(() => NoLangKeyword); /// Specify the output base directory. [Argument(Format = "--output={value}")] public string OutputFolder => Get(() => OutputFolder); /// The output folder for files generated for debugging purpose when in debug mode. If not specified, it is ${TempPath}/docfx. diff --git a/source/Nuke.Common/Tools/DocFX/DocFX.json b/source/Nuke.Common/Tools/DocFX/DocFX.json index 21d0919ba..0677da969 100644 --- a/source/Nuke.Common/Tools/DocFX/DocFX.json +++ b/source/Nuke.Common/Tools/DocFX/DocFX.json @@ -167,6 +167,7 @@ "name": "NoLangKeyword", "type": "bool", "format": "--noLangKeyword", + "secret": false, "help": "Disable default lang keyword." }, { @@ -864,6 +865,7 @@ "name": "NoLangKeyword", "type": "bool", "format": "--noLangKeyword", + "secret": false, "help": "Disable default lang keyword." }, { diff --git a/source/Nuke.Common/Tools/Docker/Docker.Generated.cs b/source/Nuke.Common/Tools/Docker/Docker.Generated.cs index b5759aa9e..55413ad3a 100644 --- a/source/Nuke.Common/Tools/Docker/Docker.Generated.cs +++ b/source/Nuke.Common/Tools/Docker/Docker.Generated.cs @@ -62,13 +62,6 @@ public partial class DockerTasks : ToolTasks, IRequirePathTool public static IReadOnlyCollection DockerStack(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStackSettings())); /// public static IEnumerable<(DockerStackSettings Settings, IReadOnlyCollection Output)> DockerStack(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStack, degreeOfParallelism, completeOnFailure); - ///

Display the running processes of a container.

For more details, visit the official website.

- ///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <options> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
- public static IReadOnlyCollection DockerTop(DockerTopSettings options = null) => new DockerTasks().Run(options); - /// - public static IReadOnlyCollection DockerTop(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTopSettings())); - /// - public static IEnumerable<(DockerTopSettings Settings, IReadOnlyCollection Output)> DockerTop(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTop, degreeOfParallelism, completeOnFailure); ///

Pull an image or a repository from a registry.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --all-tags via
  • --config via
  • --debug via
  • --disable-content-trust via
  • --log-level via
  • --platform via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPull(DockerPullSettings options = null) => new DockerTasks().Run(options); @@ -1403,19 +1396,6 @@ public partial class DockerStackSettings : DockerOptionsBase [Argument(Format = "--orchestrator {value}")] public string Orchestrator => Get(() => Orchestrator); } #endregion -#region DockerTopSettings -/// -[PublicAPI] -[ExcludeFromCodeCoverage] -[Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTop), Arguments = "top [ps")] -public partial class DockerTopSettings : DockerOptionsBase -{ - /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); - /// OPTIONS] - [Argument(Format = "{value}")] public string Options => Get(() => Options); -} -#endregion #region DockerPullSettings /// [PublicAPI] @@ -1432,7 +1412,7 @@ public partial class DockerPullSettings : DockerOptionsBase /// Suppress verbose output. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// NAME[:TAG|@DIGEST] - [Argument(Format = "{value}")] public string Name => Get(() => Name); + [Argument(Format = "{value}", Position = -1)] public string Name => Get(() => Name); } #endregion #region DockerTrustSignSettings @@ -1474,7 +1454,7 @@ public partial class DockerConfigInspectSettings : DockerOptionsBase /// Print the information in a human friendly format. [Argument(Format = "--pretty")] public bool? Pretty => Get(() => Pretty); /// CONFIG - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Configs => Get>(() => Configs); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Configs => Get>(() => Configs); } #endregion #region DockerServiceSettings @@ -1537,7 +1517,7 @@ public partial class DockerContextUpdateSettings : DockerOptionsBase /// set the kubernetes endpoint. [Argument(Format = "--kubernetes {value}")] public string Kubernetes => Get(() => Kubernetes); /// CONTEXT - [Argument(Format = "{value}")] public string Context => Get(() => Context); + [Argument(Format = "{value}", Position = -1)] public string Context => Get(() => Context); } #endregion #region DockerStackServicesSettings @@ -1556,7 +1536,7 @@ public partial class DockerStackServicesSettings : DockerStackSettings /// Only display IDs. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// STACK - [Argument(Format = "{value}")] public string Stack => Get(() => Stack); + [Argument(Format = "{value}", Position = -1)] public string Stack => Get(() => Stack); } #endregion #region DockerContainerPortSettings @@ -1567,9 +1547,9 @@ public partial class DockerStackServicesSettings : DockerStackSettings public partial class DockerContainerPortSettings : DockerOptionsBase { /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -2)] public string Container => Get(() => Container); /// [PRIVATE_PORT[/PROTO]] - [Argument(Format = "{value}")] public string PrivatePort => Get(() => PrivatePort); + [Argument(Format = "{value}", Position = -1)] public string PrivatePort => Get(() => PrivatePort); } #endregion #region DockerRenameSettings @@ -1580,9 +1560,9 @@ public partial class DockerContainerPortSettings : DockerOptionsBase public partial class DockerRenameSettings : DockerOptionsBase { /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -2)] public string Container => Get(() => Container); /// NEW_NAME - [Argument(Format = "{value}")] public string NewName => Get(() => NewName); + [Argument(Format = "{value}", Position = -1)] public string NewName => Get(() => NewName); } #endregion #region DockerTagSettings @@ -1593,9 +1573,9 @@ public partial class DockerRenameSettings : DockerOptionsBase public partial class DockerTagSettings : DockerOptionsBase { /// SOURCE_IMAGE[:TAG] - [Argument(Format = "{value}")] public string SourceImage => Get(() => SourceImage); + [Argument(Format = "{value}", Position = -2)] public string SourceImage => Get(() => SourceImage); /// TARGET_IMAGE[:TAG] - [Argument(Format = "{value}")] public string TargetImage => Get(() => TargetImage); + [Argument(Format = "{value}", Position = -1)] public string TargetImage => Get(() => TargetImage); } #endregion #region DockerSecretInspectSettings @@ -1610,7 +1590,7 @@ public partial class DockerSecretInspectSettings : DockerOptionsBase /// Print the information in a human friendly format. [Argument(Format = "--pretty")] public bool? Pretty => Get(() => Pretty); /// SECRET - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Secrets => Get>(() => Secrets); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Secrets => Get>(() => Secrets); } #endregion #region DockerSecretSettings @@ -1632,7 +1612,7 @@ public partial class DockerContainerExportSettings : DockerOptionsBase /// Write to a file, instead of STDOUT. [Argument(Format = "--output {value}")] public string Output => Get(() => Output); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -1)] public string Container => Get(() => Container); } #endregion #region DockerHistorySettings @@ -1651,7 +1631,7 @@ public partial class DockerHistorySettings : DockerOptionsBase /// Only show numeric IDs. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// IMAGE - [Argument(Format = "{value}")] public string Image => Get(() => Image); + [Argument(Format = "{value}", Position = -1)] public string Image => Get(() => Image); } #endregion #region DockerServiceCreateSettings @@ -1794,11 +1774,11 @@ public partial class DockerServiceCreateSettings : DockerOptionsBase /// Working directory inside the container. [Argument(Format = "--workdir {value}")] public string Workdir => Get(() => Workdir); /// IMAGE - [Argument(Format = "{value}")] public string Image => Get(() => Image); + [Argument(Format = "{value}", Position = -3)] public string Image => Get(() => Image); /// [COMMAND] - [Argument(Format = "{value}")] public string Command => Get(() => Command); + [Argument(Format = "{value}", Position = -2)] public string Command => Get(() => Command); /// [ARG...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Args => Get>(() => Args); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Args => Get>(() => Args); } #endregion #region DockerServicePsSettings @@ -1819,7 +1799,7 @@ public partial class DockerServicePsSettings : DockerOptionsBase /// Only display task IDs. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// SERVICE - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Services => Get>(() => Services); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Services => Get>(() => Services); } #endregion #region DockerStopSettings @@ -1832,7 +1812,7 @@ public partial class DockerStopSettings : DockerOptionsBase /// Seconds to wait for stop before killing it. [Argument(Format = "--time {value}")] public int? Time => Get(() => Time); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerNodeSettings @@ -1882,7 +1862,7 @@ public partial class DockerUpdateSettings : DockerOptionsBase /// Restart policy to apply when a container exits. [Argument(Format = "--restart {value}")] public string Restart => Get(() => Restart); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerPluginCreateSettings @@ -1895,9 +1875,9 @@ public partial class DockerPluginCreateSettings : DockerOptionsBase /// Compress the context using gzip. [Argument(Format = "--compress")] public bool? Compress => Get(() => Compress); /// PLUGIN - [Argument(Format = "{value}")] public string Plugin => Get(() => Plugin); + [Argument(Format = "{value}", Position = -2)] public string Plugin => Get(() => Plugin); /// PLUGIN-DATA-DIR - [Argument(Format = "{value}")] public string PluginDataDir => Get(() => PluginDataDir); + [Argument(Format = "{value}", Position = -1)] public string PluginDataDir => Get(() => PluginDataDir); } #endregion #region DockerSystemInfoSettings @@ -1938,9 +1918,9 @@ public partial class DockerPluginUpgradeSettings : DockerOptionsBase /// Do not check if specified remote plugin matches existing plugin image. [Argument(Format = "--skip-remote-check")] public bool? SkipRemoteCheck => Get(() => SkipRemoteCheck); /// PLUGIN - [Argument(Format = "{value}")] public string Plugin => Get(() => Plugin); + [Argument(Format = "{value}", Position = -2)] public string Plugin => Get(() => Plugin); /// [REMOTE] - [Argument(Format = "{value}")] public string Remote => Get(() => Remote); + [Argument(Format = "{value}", Position = -1)] public string Remote => Get(() => Remote); } #endregion #region DockerBuilderPruneSettings @@ -1964,7 +1944,7 @@ public partial class DockerSwarmJoinTokenSettings : DockerOptionsBase /// Rotate join token. [Argument(Format = "--rotate")] public bool? Rotate => Get(() => Rotate); /// (worker|manager) - [Argument(Format = "{value}")] public string Worker => Get(() => Worker); + [Argument(Format = "{value}", Position = -1)] public string Worker => Get(() => Worker); } #endregion #region DockerNodeUpdateSettings @@ -1983,7 +1963,7 @@ public partial class DockerNodeUpdateSettings : DockerOptionsBase /// Role of the node ("worker"|"manager"). [Argument(Format = "--role {value}")] public DockerRole Role => Get(() => Role); /// NODE - [Argument(Format = "{value}")] public string Node => Get(() => Node); + [Argument(Format = "{value}", Position = -1)] public string Node => Get(() => Node); } #endregion #region DockerTrustSignerAddSettings @@ -1994,11 +1974,11 @@ public partial class DockerNodeUpdateSettings : DockerOptionsBase public partial class DockerTrustSignerAddSettings : DockerOptionsBase { /// OPTIONS - [Argument(Format = "{value}")] public string Options => Get(() => Options); + [Argument(Format = "{value}", Position = -3)] public string Options => Get(() => Options); /// NAME - [Argument(Format = "{value}")] public string Name => Get(() => Name); + [Argument(Format = "{value}", Position = -2)] public string Name => Get(() => Name); /// REPOSITORY - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Repositories => Get>(() => Repositories); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Repositories => Get>(() => Repositories); } #endregion #region DockerSwarmUpdateSettings @@ -2050,7 +2030,7 @@ public partial class DockerServiceLogsSettings : DockerOptionsBase /// Show timestamps. [Argument(Format = "--timestamps")] public bool? Timestamps => Get(() => Timestamps); /// SERVICE|TASK - [Argument(Format = "{value}")] public string Service => Get(() => Service); + [Argument(Format = "{value}", Position = -1)] public string Service => Get(() => Service); } #endregion #region DockerServiceLsSettings @@ -2121,7 +2101,7 @@ public partial class DockerPluginRmSettings : DockerOptionsBase /// Force the removal of an active plugin. [Argument(Format = "--force")] public bool? Force => Get(() => Force); /// PLUGIN - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Plugins => Get>(() => Plugins); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Plugins => Get>(() => Plugins); } #endregion #region DockerImageBuildSettings @@ -2202,7 +2182,7 @@ public partial class DockerImageBuildSettings : DockerOptionsBase /// Ulimit options. [Argument(Format = "--ulimit {value}")] public string Ulimit => Get(() => Ulimit); /// Path or url where the build context is located. - [Argument(Format = "{value}")] public string Path => Get(() => Path); + [Argument(Format = "{value}", Position = -1)] public string Path => Get(() => Path); } #endregion #region DockerTrustRevokeSettings @@ -2215,7 +2195,7 @@ public partial class DockerTrustRevokeSettings : DockerOptionsBase /// Do not prompt for confirmation. [Argument(Format = "--yes")] public bool? Yes => Get(() => Yes); /// IMAGE[:TAG] - [Argument(Format = "{value}")] public string Image => Get(() => Image); + [Argument(Format = "{value}", Position = -1)] public string Image => Get(() => Image); } #endregion #region DockerRmiSettings @@ -2230,7 +2210,7 @@ public partial class DockerRmiSettings : DockerOptionsBase /// Do not delete untagged parents. [Argument(Format = "--no-prune")] public bool? NoPrune => Get(() => NoPrune); /// IMAGE - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Images => Get>(() => Images); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Images => Get>(() => Images); } #endregion #region DockerNetworkRmSettings @@ -2271,9 +2251,9 @@ public partial class DockerSecretCreateSettings : DockerOptionsBase /// Template driver. [Argument(Format = "--template-driver {value}")] public string TemplateDriver => Get(() => TemplateDriver); /// SECRET - [Argument(Format = "{value}")] public string Secret => Get(() => Secret); + [Argument(Format = "{value}", Position = -2)] public string Secret => Get(() => Secret); /// Path to file to create the secret from. - [Argument(Format = "{value}")] public string File => Get(() => File); + [Argument(Format = "{value}", Position = -1)] public string File => Get(() => File); } #endregion #region DockerServiceRmSettings @@ -2297,7 +2277,7 @@ public partial class DockerTrustKeyLoadSettings : DockerOptionsBase /// Name for the loaded key. [Argument(Format = "--name {value}")] public string Name => Get(() => Name); /// KEYFILE - [Argument(Format = "{value}")] public string Keyfile => Get(() => Keyfile); + [Argument(Format = "{value}", Position = -1, Secret = false)] public string Keyfile => Get(() => Keyfile); } #endregion #region DockerSecretRmSettings @@ -2321,7 +2301,7 @@ public partial class DockerImageInspectSettings : DockerOptionsBase /// Format the output using the given Go template. [Argument(Format = "--format {value}")] public string Format => Get(() => Format); /// IMAGE - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Images => Get>(() => Images); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Images => Get>(() => Images); } #endregion #region DockerImageSaveSettings @@ -2334,7 +2314,7 @@ public partial class DockerImageSaveSettings : DockerOptionsBase /// Write to a file, instead of STDOUT. [Argument(Format = "--output {value}")] public string Output => Get(() => Output); /// IMAGE - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Images => Get>(() => Images); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Images => Get>(() => Images); } #endregion #region DockerTrustKeySettings @@ -2354,13 +2334,13 @@ public partial class DockerTrustKeySettings : DockerOptionsBase public partial class DockerContainerAttachSettings : DockerOptionsBase { /// Override the key sequence for detaching a container. - [Argument(Format = "--detach-keys {value}")] public string DetachKeys => Get(() => DetachKeys); + [Argument(Format = "--detach-keys {value}", Secret = false)] public string DetachKeys => Get(() => DetachKeys); /// Do not attach STDIN. [Argument(Format = "--no-stdin")] public bool? NoStdin => Get(() => NoStdin); /// Proxy all received signals to the process. [Argument(Format = "--sig-proxy")] public bool? SigProxy => Get(() => SigProxy); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -1)] public string Container => Get(() => Container); } #endregion #region DockerContextCreateSettings @@ -2381,7 +2361,7 @@ public partial class DockerContextCreateSettings : DockerOptionsBase /// set the kubernetes endpoint. [Argument(Format = "--kubernetes {value}")] public string Kubernetes => Get(() => Kubernetes); /// CONTEXT - [Argument(Format = "{value}")] public string Context => Get(() => Context); + [Argument(Format = "{value}", Position = -1)] public string Context => Get(() => Context); } #endregion #region DockerConfigCreateSettings @@ -2396,9 +2376,9 @@ public partial class DockerConfigCreateSettings : DockerOptionsBase /// Template driver. [Argument(Format = "--template-driver {value}")] public string TemplateDriver => Get(() => TemplateDriver); /// CONFIG - [Argument(Format = "{value}")] public string Config => Get(() => Config); + [Argument(Format = "{value}", Position = -2)] public string Config => Get(() => Config); /// file|- - [Argument(Format = "{value}")] public string File => Get(() => File); + [Argument(Format = "{value}", Position = -1)] public string File => Get(() => File); } #endregion #region DockerVolumeInspectSettings @@ -2411,7 +2391,7 @@ public partial class DockerVolumeInspectSettings : DockerOptionsBase /// Format the output using the given Go template. [Argument(Format = "--format {value}")] public string Format => Get(() => Format); /// VOLUME - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Volumes => Get>(() => Volumes); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Volumes => Get>(() => Volumes); } #endregion #region DockerContainerStopSettings @@ -2424,7 +2404,7 @@ public partial class DockerContainerStopSettings : DockerOptionsBase /// Seconds to wait for stop before killing it. [Argument(Format = "--time {value}")] public int? Time => Get(() => Time); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerNetworkPruneSettings @@ -2452,9 +2432,9 @@ public partial class DockerManifestInspectSettings : DockerOptionsBase /// Output additional info including layers and platform. [Argument(Format = "--verbose")] public bool? Verbose => Get(() => Verbose); /// [MANIFEST_LIST] - [Argument(Format = "{value}")] public string ManifestList => Get(() => ManifestList); + [Argument(Format = "{value}", Position = -2)] public string ManifestList => Get(() => ManifestList); /// MANIFEST - [Argument(Format = "{value}")] public string Manifest => Get(() => Manifest); + [Argument(Format = "{value}", Position = -1)] public string Manifest => Get(() => Manifest); } #endregion #region DockerInfoSettings @@ -2484,9 +2464,9 @@ public partial class DockerCommitSettings : DockerOptionsBase /// Pause container during commit. [Argument(Format = "--pause")] public bool? Pause => Get(() => Pause); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -2)] public string Container => Get(() => Container); /// [REPOSITORY[:TAG]] - [Argument(Format = "{value}")] public string Repository => Get(() => Repository); + [Argument(Format = "{value}", Position = -1)] public string Repository => Get(() => Repository); } #endregion #region DockerStackDeploySettings @@ -2509,7 +2489,7 @@ public partial class DockerStackDeploySettings : DockerOptionsBase /// Send registry authentication details to Swarm agents. [Argument(Format = "--with-registry-auth")] public bool? WithRegistryAuth => Get(() => WithRegistryAuth); /// STACK - [Argument(Format = "{value}")] public string Stack => Get(() => Stack); + [Argument(Format = "{value}", Position = -1)] public string Stack => Get(() => Stack); } #endregion #region DockerServiceScaleSettings @@ -2569,7 +2549,7 @@ public partial class DockerRunSettings : DockerOptionsBase /// Run container in background and print container ID. [Argument(Format = "--detach")] public bool? Detach => Get(() => Detach); /// Override the key sequence for detaching a container. - [Argument(Format = "--detach-keys {value}")] public string DetachKeys => Get(() => DetachKeys); + [Argument(Format = "--detach-keys {value}", Secret = false)] public string DetachKeys => Get(() => DetachKeys); /// Add a host device to the container. [Argument(Format = "--device {value}")] public IReadOnlyList Device => Get>(() => Device); /// Add a rule to the cgroup allowed devices list. @@ -2733,11 +2713,11 @@ public partial class DockerRunSettings : DockerOptionsBase /// Working directory inside the container. [Argument(Format = "--workdir {value}")] public string Workdir => Get(() => Workdir); /// IMAGE - [Argument(Format = "{value}")] public string Image => Get(() => Image); + [Argument(Format = "{value}", Position = -3)] public string Image => Get(() => Image); /// [COMMAND] - [Argument(Format = "{value}")] public string Command => Get(() => Command); + [Argument(Format = "{value}", Position = -2)] public string Command => Get(() => Command); /// [ARG...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Args => Get>(() => Args); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Args => Get>(() => Args); } #endregion #region DockerCreateSettings @@ -2944,11 +2924,11 @@ public partial class DockerCreateSettings : DockerOptionsBase /// Working directory inside the container. [Argument(Format = "--workdir {value}")] public string Workdir => Get(() => Workdir); /// IMAGE - [Argument(Format = "{value}")] public string Image => Get(() => Image); + [Argument(Format = "{value}", Position = -3)] public string Image => Get(() => Image); /// [COMMAND] - [Argument(Format = "{value}")] public string Command => Get(() => Command); + [Argument(Format = "{value}", Position = -2)] public string Command => Get(() => Command); /// [ARG...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Args => Get>(() => Args); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Args => Get>(() => Args); } #endregion #region DockerServiceUpdateSettings @@ -3127,7 +3107,7 @@ public partial class DockerServiceUpdateSettings : DockerOptionsBase /// Working directory inside the container. [Argument(Format = "--workdir {value}")] public string Workdir => Get(() => Workdir); /// SERVICE - [Argument(Format = "{value}")] public string Service => Get(() => Service); + [Argument(Format = "{value}", Position = -1)] public string Service => Get(() => Service); } #endregion #region DockerPortSettings @@ -3138,9 +3118,9 @@ public partial class DockerServiceUpdateSettings : DockerOptionsBase public partial class DockerPortSettings : DockerOptionsBase { /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -2)] public string Container => Get(() => Container); /// [PRIVATE_PORT[/PROTO]] - [Argument(Format = "{value}")] public string PrivatePort => Get(() => PrivatePort); + [Argument(Format = "{value}", Position = -1)] public string PrivatePort => Get(() => PrivatePort); } #endregion #region DockerContainerSettings @@ -3164,7 +3144,7 @@ public partial class DockerImagePushSettings : DockerOptionsBase /// Skip image signing. [Argument(Format = "--disable-content-trust")] public bool? DisableContentTrust => Get(() => DisableContentTrust); /// NAME[:TAG] - [Argument(Format = "{value}")] public string Name => Get(() => Name); + [Argument(Format = "{value}", Position = -1)] public string Name => Get(() => Name); } #endregion #region DockerServiceInspectSettings @@ -3179,7 +3159,7 @@ public partial class DockerServiceInspectSettings : DockerOptionsBase /// Print the information in a human friendly format. [Argument(Format = "--pretty")] public bool? Pretty => Get(() => Pretty); /// SERVICE - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Services => Get>(() => Services); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Services => Get>(() => Services); } #endregion #region DockerNetworkConnectSettings @@ -3202,9 +3182,9 @@ public partial class DockerNetworkConnectSettings : DockerOptionsBase /// Add a link-local address for the container. [Argument(Format = "--link-local-ip {value}")] public IReadOnlyList LinkLocalIp => Get>(() => LinkLocalIp); /// NETWORK - [Argument(Format = "{value}")] public string Network => Get(() => Network); + [Argument(Format = "{value}", Position = -2)] public string Network => Get(() => Network); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -1)] public string Container => Get(() => Container); } #endregion #region DockerSecretLsSettings @@ -3253,7 +3233,7 @@ public partial class DockerImagesSettings : DockerOptionsBase /// Only show numeric IDs. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// [REPOSITORY[:TAG]] - [Argument(Format = "{value}")] public string Repository => Get(() => Repository); + [Argument(Format = "{value}", Position = -1)] public string Repository => Get(() => Repository); } #endregion #region DockerEngineUpdateSettings @@ -3304,7 +3284,7 @@ public partial class DockerInspectSettings : DockerOptionsBase /// Return JSON for specified type. [Argument(Format = "--type {value}")] public string Type => Get(() => Type); /// NAME|ID - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Names => Get>(() => Names); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Names => Get>(() => Names); } #endregion #region DockerEngineCheckSettings @@ -3340,13 +3320,13 @@ public partial class DockerEngineCheckSettings : DockerOptionsBase public partial class DockerAttachSettings : DockerOptionsBase { /// Override the key sequence for detaching a container. - [Argument(Format = "--detach-keys {value}")] public string DetachKeys => Get(() => DetachKeys); + [Argument(Format = "--detach-keys {value}", Secret = false)] public string DetachKeys => Get(() => DetachKeys); /// Do not attach STDIN. [Argument(Format = "--no-stdin")] public bool? NoStdin => Get(() => NoStdin); /// Proxy all received signals to the process. [Argument(Format = "--sig-proxy")] public bool? SigProxy => Get(() => SigProxy); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -1)] public string Container => Get(() => Container); } #endregion #region DockerContainerWaitSettings @@ -3447,9 +3427,9 @@ public partial class DockerContainerCommitSettings : DockerOptionsBase /// Pause container during commit. [Argument(Format = "--pause")] public bool? Pause => Get(() => Pause); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -2)] public string Container => Get(() => Container); /// [REPOSITORY[:TAG]] - [Argument(Format = "{value}")] public string Repository => Get(() => Repository); + [Argument(Format = "{value}", Position = -1)] public string Repository => Get(() => Repository); } #endregion #region DockerContextLsSettings @@ -3496,7 +3476,7 @@ public partial class DockerStackPsSettings : DockerStackSettings /// Only display task IDs. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// STACK - [Argument(Format = "{value}")] public string Stack => Get(() => Stack); + [Argument(Format = "{value}", Position = -1)] public string Stack => Get(() => Stack); } #endregion #region DockerContainerCreateSettings @@ -3703,11 +3683,11 @@ public partial class DockerContainerCreateSettings : DockerOptionsBase /// Working directory inside the container. [Argument(Format = "--workdir {value}")] public string Workdir => Get(() => Workdir); /// IMAGE - [Argument(Format = "{value}")] public string Image => Get(() => Image); + [Argument(Format = "{value}", Position = -3)] public string Image => Get(() => Image); /// [COMMAND] - [Argument(Format = "{value}")] public string Command => Get(() => Command); + [Argument(Format = "{value}", Position = -2)] public string Command => Get(() => Command); /// [ARG...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Args => Get>(() => Args); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Args => Get>(() => Args); } #endregion #region DockerVolumeCreateSettings @@ -3726,7 +3706,7 @@ public partial class DockerVolumeCreateSettings : DockerOptionsBase /// Set driver specific options. [Argument(Format = "--opt {key}:{value}")] public IReadOnlyDictionary Opt => Get>(() => Opt); /// [VOLUME] - [Argument(Format = "{value}")] public string Volume => Get(() => Volume); + [Argument(Format = "{value}", Position = -1)] public string Volume => Get(() => Volume); } #endregion #region DockerPluginSettings @@ -3750,7 +3730,7 @@ public partial class DockerLoginSettings : DockerOptionsBase /// Username. [Argument(Format = "--username {value}")] public string Username => Get(() => Username); /// [SERVER] - [Argument(Format = "{value}")] public string Server => Get(() => Server); + [Argument(Format = "{value}", Position = -1)] public string Server => Get(() => Server); } #endregion #region DockerSwarmUnlockKeySettings @@ -3780,11 +3760,11 @@ public partial class DockerStartSettings : DockerOptionsBase /// Use a custom checkpoint storage directory. [Argument(Format = "--checkpoint-dir {value}")] public string CheckpointDir => Get(() => CheckpointDir); /// Override the key sequence for detaching a container. - [Argument(Format = "--detach-keys {value}")] public string DetachKeys => Get(() => DetachKeys); + [Argument(Format = "--detach-keys {value}", Secret = false)] public string DetachKeys => Get(() => DetachKeys); /// Attach container's STDIN. [Argument(Format = "--interactive")] public bool? Interactive => Get(() => Interactive); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerSwarmInitSettings @@ -3847,7 +3827,7 @@ public partial class DockerContainerRestartSettings : DockerOptionsBase /// Seconds to wait for stop before killing the container. [Argument(Format = "--time {value}")] public int? Time => Get(() => Time); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerConfigSettings @@ -3869,7 +3849,7 @@ public partial class DockerPluginDisableSettings : DockerOptionsBase /// Force the disable of an active plugin. [Argument(Format = "--force")] public bool? Force => Get(() => Force); /// PLUGIN - [Argument(Format = "{value}")] public string Plugin => Get(() => Plugin); + [Argument(Format = "{value}", Position = -1)] public string Plugin => Get(() => Plugin); } #endregion #region DockerContainerUnpauseSettings @@ -3891,9 +3871,9 @@ public partial class DockerContainerUnpauseSettings : DockerOptionsBase public partial class DockerContextImportSettings : DockerOptionsBase { /// CONTEXT - [Argument(Format = "{value}")] public string Context => Get(() => Context); + [Argument(Format = "{value}", Position = -2)] public string Context => Get(() => Context); /// FILE|- - [Argument(Format = "{value}")] public string File => Get(() => File); + [Argument(Format = "{value}", Position = -1)] public string File => Get(() => File); } #endregion #region DockerRmSettings @@ -3910,7 +3890,7 @@ public partial class DockerRmSettings : DockerOptionsBase /// Remove the volumes associated with the container. [Argument(Format = "--volumes")] public bool? Volumes => Get(() => Volumes); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerDeploySettings @@ -3933,7 +3913,7 @@ public partial class DockerDeploySettings : DockerOptionsBase /// Send registry authentication details to Swarm agents. [Argument(Format = "--with-registry-auth")] public bool? WithRegistryAuth => Get(() => WithRegistryAuth); /// STACK - [Argument(Format = "{value}")] public string Stack => Get(() => Stack); + [Argument(Format = "{value}", Position = -1)] public string Stack => Get(() => Stack); } #endregion #region DockerNodeRmSettings @@ -3946,7 +3926,7 @@ public partial class DockerNodeRmSettings : DockerOptionsBase /// Force remove a node from the swarm. [Argument(Format = "--force")] public bool? Force => Get(() => Force); /// NODE - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Nodes => Get>(() => Nodes); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Nodes => Get>(() => Nodes); } #endregion #region DockerCheckpointRmSettings @@ -3959,9 +3939,9 @@ public partial class DockerCheckpointRmSettings : DockerOptionsBase /// Use a custom checkpoint storage directory. [Argument(Format = "--checkpoint-dir {value}")] public string CheckpointDir => Get(() => CheckpointDir); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -2)] public string Container => Get(() => Container); /// CHECKPOINT - [Argument(Format = "{value}")] public string Checkpoint => Get(() => Checkpoint); + [Argument(Format = "{value}", Position = -1)] public string Checkpoint => Get(() => Checkpoint); } #endregion #region DockerPushSettings @@ -3976,7 +3956,7 @@ public partial class DockerPushSettings : DockerOptionsBase /// Skip image signing. [Argument(Format = "--disable-content-trust")] public bool? DisableContentTrust => Get(() => DisableContentTrust); /// NAME[:TAG] - [Argument(Format = "{value}")] public string Name => Get(() => Name); + [Argument(Format = "{value}", Position = -1)] public string Name => Get(() => Name); } #endregion #region DockerNetworkCreateSettings @@ -4019,7 +3999,7 @@ public partial class DockerNetworkCreateSettings : DockerOptionsBase /// Subnet in CIDR format that represents a network segment. [Argument(Format = "--subnet {value}")] public IReadOnlyList Subnet => Get>(() => Subnet); /// NETWORK - [Argument(Format = "{value}")] public string Network => Get(() => Network); + [Argument(Format = "{value}", Position = -1)] public string Network => Get(() => Network); } #endregion #region DockerVolumeLsSettings @@ -4060,7 +4040,7 @@ public partial class DockerNetworkInspectSettings : DockerOptionsBase /// Verbose output for diagnostics. [Argument(Format = "--verbose")] public bool? Verbose => Get(() => Verbose); /// NETWORK - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Networks => Get>(() => Networks); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Networks => Get>(() => Networks); } #endregion #region DockerEngineActivateSettings @@ -4109,7 +4089,7 @@ public partial class DockerVolumeRmSettings : DockerOptionsBase /// Force the removal of one or more volumes. [Argument(Format = "--force")] public bool? Force => Get(() => Force); /// VOLUME - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Volumes => Get>(() => Volumes); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Volumes => Get>(() => Volumes); } #endregion #region DockerManifestCreateSettings @@ -4120,9 +4100,9 @@ public partial class DockerVolumeRmSettings : DockerOptionsBase public partial class DockerManifestCreateSettings : DockerOptionsBase { /// MANIFEST_LIST - [Argument(Format = "{value}")] public string ManifestList => Get(() => ManifestList); + [Argument(Format = "{value}", Position = -2)] public string ManifestList => Get(() => ManifestList); /// MANIFEST - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Manifests => Get>(() => Manifests); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Manifests => Get>(() => Manifests); } #endregion #region DockerManifestPushSettings @@ -4137,7 +4117,7 @@ public partial class DockerManifestPushSettings : DockerOptionsBase /// Remove the local manifest list after push. [Argument(Format = "--purge")] public bool? Purge => Get(() => Purge); /// MANIFEST_LIST - [Argument(Format = "{value}")] public string ManifestList => Get(() => ManifestList); + [Argument(Format = "{value}", Position = -1)] public string ManifestList => Get(() => ManifestList); } #endregion #region DockerPluginEnableSettings @@ -4150,7 +4130,7 @@ public partial class DockerPluginEnableSettings : DockerOptionsBase /// HTTP client timeout (in seconds). [Argument(Format = "--timeout {value}")] public int? Timeout => Get(() => Timeout); /// PLUGIN - [Argument(Format = "{value}")] public string Plugin => Get(() => Plugin); + [Argument(Format = "{value}", Position = -1)] public string Plugin => Get(() => Plugin); } #endregion #region DockerImportSettings @@ -4167,9 +4147,9 @@ public partial class DockerImportSettings : DockerOptionsBase /// Set platform if server is multi-platform capable. [Argument(Format = "--platform {value}")] public string Platform => Get(() => Platform); /// file|URL|- - [Argument(Format = "{value}")] public string File => Get(() => File); + [Argument(Format = "{value}", Position = -2)] public string File => Get(() => File); /// [REPOSITORY[:TAG]] - [Argument(Format = "{value}")] public string Repository => Get(() => Repository); + [Argument(Format = "{value}", Position = -1)] public string Repository => Get(() => Repository); } #endregion #region DockerContainerRunSettings @@ -4218,7 +4198,7 @@ public partial class DockerContainerRunSettings : DockerOptionsBase /// Run container in background and print container ID. [Argument(Format = "--detach")] public bool? Detach => Get(() => Detach); /// Override the key sequence for detaching a container. - [Argument(Format = "--detach-keys {value}")] public string DetachKeys => Get(() => DetachKeys); + [Argument(Format = "--detach-keys {value}", Secret = false)] public string DetachKeys => Get(() => DetachKeys); /// Add a host device to the container. [Argument(Format = "--device {value}")] public IReadOnlyList Device => Get>(() => Device); /// Add a rule to the cgroup allowed devices list. @@ -4382,11 +4362,11 @@ public partial class DockerContainerRunSettings : DockerOptionsBase /// Working directory inside the container. [Argument(Format = "--workdir {value}")] public string Workdir => Get(() => Workdir); /// IMAGE - [Argument(Format = "{value}")] public string Image => Get(() => Image); + [Argument(Format = "{value}", Position = -3)] public string Image => Get(() => Image); /// [COMMAND] - [Argument(Format = "{value}")] public string Command => Get(() => Command); + [Argument(Format = "{value}", Position = -2)] public string Command => Get(() => Command); /// [ARG...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Args => Get>(() => Args); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Args => Get>(() => Args); } #endregion #region DockerNodeInspectSettings @@ -4401,7 +4381,7 @@ public partial class DockerNodeInspectSettings : DockerOptionsBase /// Print the information in a human friendly format. [Argument(Format = "--pretty")] public bool? Pretty => Get(() => Pretty); /// self|NODE - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Selves => Get>(() => Selves); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Selves => Get>(() => Selves); } #endregion #region DockerSaveSettings @@ -4414,7 +4394,7 @@ public partial class DockerSaveSettings : DockerOptionsBase /// Write to a file, instead of STDOUT. [Argument(Format = "--output {value}")] public string Output => Get(() => Output); /// IMAGE - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Images => Get>(() => Images); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Images => Get>(() => Images); } #endregion #region DockerContainerStatsSettings @@ -4433,7 +4413,7 @@ public partial class DockerContainerStatsSettings : DockerOptionsBase /// Do not truncate output. [Argument(Format = "--no-trunc")] public bool? NoTrunc => Get(() => NoTrunc); /// [CONTAINER...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerContainerExecSettings @@ -4446,7 +4426,7 @@ public partial class DockerContainerExecSettings : DockerOptionsBase /// Detached mode: run command in the background. [Argument(Format = "--detach")] public bool? Detach => Get(() => Detach); /// Override the key sequence for detaching a container. - [Argument(Format = "--detach-keys {value}")] public string DetachKeys => Get(() => DetachKeys); + [Argument(Format = "--detach-keys {value}", Secret = false)] public string DetachKeys => Get(() => DetachKeys); /// Set environment variables. [Argument(Format = "--env {value}")] public IReadOnlyList Env => Get>(() => Env); /// Keep STDIN open even if not attached. @@ -4460,11 +4440,11 @@ public partial class DockerContainerExecSettings : DockerOptionsBase /// Working directory inside the container. [Argument(Format = "--workdir {value}")] public string Workdir => Get(() => Workdir); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -3)] public string Container => Get(() => Container); /// COMMAND - [Argument(Format = "{value}")] public string Command => Get(() => Command); + [Argument(Format = "{value}", Position = -2)] public string Command => Get(() => Command); /// [ARG...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Args => Get>(() => Args); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Args => Get>(() => Args); } #endregion #region DockerNodeLsSettings @@ -4521,7 +4501,7 @@ public partial class DockerContainerLogsSettings : DockerOptionsBase /// Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes). [Argument(Format = "--until {value}")] public string Until => Get(() => Until); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -1)] public string Container => Get(() => Container); } #endregion #region DockerCheckpointLsSettings @@ -4534,7 +4514,7 @@ public partial class DockerCheckpointLsSettings : DockerOptionsBase /// Use a custom checkpoint storage directory. [Argument(Format = "--checkpoint-dir {value}")] public string CheckpointDir => Get(() => CheckpointDir); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -1)] public string Container => Get(() => Container); } #endregion #region DockerContainerKillSettings @@ -4547,7 +4527,7 @@ public partial class DockerContainerKillSettings : DockerOptionsBase /// Signal to send to the container. [Argument(Format = "--signal {value}")] public string Signal => Get(() => Signal); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerPluginInstallSettings @@ -4566,9 +4546,9 @@ public partial class DockerPluginInstallSettings : DockerOptionsBase /// Grant all permissions necessary to run the plugin. [Argument(Format = "--grant-all-permissions")] public bool? GrantAllPermissions => Get(() => GrantAllPermissions); /// PLUGIN - [Argument(Format = "{value}")] public string Plugin => Get(() => Plugin); + [Argument(Format = "{value}", Position = -2)] public string Plugin => Get(() => Plugin); /// [KEY=VALUE...] - [Argument(Format = "{key}={value}")] public IReadOnlyDictionary KeyValues => Get>(() => KeyValues); + [Argument(Format = "{key}={value}", Position = -1)] public IReadOnlyDictionary KeyValues => Get>(() => KeyValues); } #endregion #region DockerImagePruneSettings @@ -4600,9 +4580,9 @@ public partial class DockerImageImportSettings : DockerOptionsBase /// Set platform if server is multi-platform capable. [Argument(Format = "--platform {value}")] public string Platform => Get(() => Platform); /// file|URL|- - [Argument(Format = "{value}")] public string File => Get(() => File); + [Argument(Format = "{value}", Position = -2)] public string File => Get(() => File); /// [REPOSITORY[:TAG]] - [Argument(Format = "{value}")] public string Repository => Get(() => Repository); + [Argument(Format = "{value}", Position = -1)] public string Repository => Get(() => Repository); } #endregion #region DockerDiffSettings @@ -4624,7 +4604,7 @@ public partial class DockerDiffSettings : DockerOptionsBase public partial class DockerUnpauseSettings : DockerOptionsBase { /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerContainerLsSettings @@ -4670,7 +4650,7 @@ public partial class DockerNodePsSettings : DockerOptionsBase /// Only display task IDs. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// [NODE...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Nodes => Get>(() => Nodes); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Nodes => Get>(() => Nodes); } #endregion #region DockerContainerTopSettings @@ -4681,9 +4661,9 @@ public partial class DockerNodePsSettings : DockerOptionsBase public partial class DockerContainerTopSettings : DockerOptionsBase { /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -2)] public string Container => Get(() => Container); /// OPTIONS] - [Argument(Format = "{value}")] public string Options => Get(() => Options); + [Argument(Format = "{value}", Position = -1)] public string Options => Get(() => Options); } #endregion #region DockerContainerRenameSettings @@ -4694,9 +4674,9 @@ public partial class DockerContainerTopSettings : DockerOptionsBase public partial class DockerContainerRenameSettings : DockerOptionsBase { /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -2)] public string Container => Get(() => Container); /// NEW_NAME - [Argument(Format = "{value}")] public string NewName => Get(() => NewName); + [Argument(Format = "{value}", Position = -1)] public string NewName => Get(() => NewName); } #endregion #region DockerImageHistorySettings @@ -4715,7 +4695,7 @@ public partial class DockerImageHistorySettings : DockerOptionsBase /// Only show numeric IDs. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// IMAGE - [Argument(Format = "{value}")] public string Image => Get(() => Image); + [Argument(Format = "{value}", Position = -1)] public string Image => Get(() => Image); } #endregion #region DockerPsSettings @@ -4751,9 +4731,9 @@ public partial class DockerPsSettings : DockerOptionsBase public partial class DockerImageTagSettings : DockerOptionsBase { /// SOURCE_IMAGE[:TAG] - [Argument(Format = "{value}")] public string SourceImage => Get(() => SourceImage); + [Argument(Format = "{value}", Position = -2)] public string SourceImage => Get(() => SourceImage); /// TARGET_IMAGE[:TAG] - [Argument(Format = "{value}")] public string TargetImage => Get(() => TargetImage); + [Argument(Format = "{value}", Position = -1)] public string TargetImage => Get(() => TargetImage); } #endregion #region DockerExportSettings @@ -4766,7 +4746,7 @@ public partial class DockerExportSettings : DockerOptionsBase /// Write to a file, instead of STDOUT. [Argument(Format = "--output {value}")] public string Output => Get(() => Output); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -1)] public string Container => Get(() => Container); } #endregion #region DockerNetworkDisconnectSettings @@ -4779,9 +4759,9 @@ public partial class DockerNetworkDisconnectSettings : DockerOptionsBase /// Force the container to disconnect from a network. [Argument(Format = "--force")] public bool? Force => Get(() => Force); /// NETWORK - [Argument(Format = "{value}")] public string Network => Get(() => Network); + [Argument(Format = "{value}", Position = -2)] public string Network => Get(() => Network); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -1)] public string Container => Get(() => Container); } #endregion #region DockerBuilderBuildSettings @@ -4862,7 +4842,7 @@ public partial class DockerBuilderBuildSettings : DockerOptionsBase /// Ulimit options. [Argument(Format = "--ulimit {value}")] public string Ulimit => Get(() => Ulimit); /// Path or url where the build context is located. - [Argument(Format = "{value}")] public string Path => Get(() => Path); + [Argument(Format = "{value}", Position = -1)] public string Path => Get(() => Path); } #endregion #region DockerBuildxBuildSettings @@ -4945,7 +4925,7 @@ public partial class DockerBuildxBuildSettings : DockerOptionsBase /// Ulimit options. [Argument(Format = "--ulimit {value}")] public string Ulimit => Get(() => Ulimit); /// Path or url where the build context is located. - [Argument(Format = "{value}")] public string Path => Get(() => Path); + [Argument(Format = "{value}", Position = -1)] public string Path => Get(() => Path); } #endregion #region DockerBuildxCreateSettings @@ -4997,7 +4977,7 @@ public partial class DockerStatsSettings : DockerOptionsBase /// Do not truncate output. [Argument(Format = "--no-trunc")] public bool? NoTrunc => Get(() => NoTrunc); /// [CONTAINER...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerSearchSettings @@ -5020,7 +5000,7 @@ public partial class DockerSearchSettings : DockerOptionsBase /// Only displays with at least x stars. [Argument(Format = "--stars {value}")] public int? Stars => Get(() => Stars); /// TERM - [Argument(Format = "{value}")] public string Term => Get(() => Term); + [Argument(Format = "{value}", Position = -1)] public string Term => Get(() => Term); } #endregion #region DockerManifestSettings @@ -5044,7 +5024,7 @@ public partial class DockerPluginPushSettings : DockerOptionsBase /// Skip image signing. [Argument(Format = "--disable-content-trust")] public bool? DisableContentTrust => Get(() => DisableContentTrust); /// PLUGIN[:TAG] - [Argument(Format = "{value}")] public string Plugin => Get(() => Plugin); + [Argument(Format = "{value}", Position = -1)] public string Plugin => Get(() => Plugin); } #endregion #region DockerImageLoadSettings @@ -5083,7 +5063,7 @@ public partial class DockerContainerRmSettings : DockerOptionsBase /// Remove the volumes associated with the container. [Argument(Format = "--volumes")] public bool? Volumes => Get(() => Volumes); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerContainerUpdateSettings @@ -5124,7 +5104,7 @@ public partial class DockerContainerUpdateSettings : DockerOptionsBase /// Restart policy to apply when a container exits. [Argument(Format = "--restart {value}")] public string Restart => Get(() => Restart); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerPluginSetSettings @@ -5135,9 +5115,9 @@ public partial class DockerContainerUpdateSettings : DockerOptionsBase public partial class DockerPluginSetSettings : DockerOptionsBase { /// PLUGIN - [Argument(Format = "{value}")] public string Plugin => Get(() => Plugin); + [Argument(Format = "{value}", Position = -2)] public string Plugin => Get(() => Plugin); /// KEY=VALUE - [Argument(Format = "{key}={value}")] public IReadOnlyDictionary KeyValues => Get>(() => KeyValues); + [Argument(Format = "{key}={value}", Position = -1)] public IReadOnlyDictionary KeyValues => Get>(() => KeyValues); } #endregion #region DockerWaitSettings @@ -5161,9 +5141,9 @@ public partial class DockerContextExportSettings : DockerOptionsBase /// Export as a kubeconfig file. [Argument(Format = "--kubeconfig")] public bool? Kubeconfig => Get(() => Kubeconfig); /// CONTEXT - [Argument(Format = "{value}")] public string Context => Get(() => Context); + [Argument(Format = "{value}", Position = -2)] public string Context => Get(() => Context); /// [FILE|-] - [Argument(Format = "{value}")] public string File => Get(() => File); + [Argument(Format = "{value}", Position = -1)] public string File => Get(() => File); } #endregion #region DockerManifestAnnotateSettings @@ -5182,9 +5162,9 @@ public partial class DockerManifestAnnotateSettings : DockerOptionsBase /// Set architecture variant. [Argument(Format = "--variant {value}")] public string Variant => Get(() => Variant); /// MANIFEST_LIST - [Argument(Format = "{value}")] public string ManifestList => Get(() => ManifestList); + [Argument(Format = "{value}", Position = -2)] public string ManifestList => Get(() => ManifestList); /// MANIFEST - [Argument(Format = "{value}")] public string Manifest => Get(() => Manifest); + [Argument(Format = "{value}", Position = -1)] public string Manifest => Get(() => Manifest); } #endregion #region DockerImagePullSettings @@ -5203,7 +5183,7 @@ public partial class DockerImagePullSettings : DockerOptionsBase /// Suppress verbose output. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// NAME[:TAG|@DIGEST] - [Argument(Format = "{value}")] public string Name => Get(() => Name); + [Argument(Format = "{value}", Position = -1)] public string Name => Get(() => Name); } #endregion #region DockerEventsSettings @@ -5250,7 +5230,7 @@ public partial class DockerContainerInspectSettings : DockerOptionsBase /// Display total file sizes. [Argument(Format = "--size")] public bool? Size => Get(() => Size); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerKillSettings @@ -5263,7 +5243,7 @@ public partial class DockerKillSettings : DockerOptionsBase /// Signal to send to the container. [Argument(Format = "--signal {value}")] public string Signal => Get(() => Signal); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerCheckpointCreateSettings @@ -5278,9 +5258,9 @@ public partial class DockerCheckpointCreateSettings : DockerOptionsBase /// Leave the container running after checkpoint. [Argument(Format = "--leave-running")] public bool? LeaveRunning => Get(() => LeaveRunning); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -2)] public string Container => Get(() => Container); /// CHECKPOINT - [Argument(Format = "{value}")] public string Checkpoint => Get(() => Checkpoint); + [Argument(Format = "{value}", Position = -1)] public string Checkpoint => Get(() => Checkpoint); } #endregion #region DockerPauseSettings @@ -5314,7 +5294,7 @@ public partial class DockerLogsSettings : DockerOptionsBase /// Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes). [Argument(Format = "--until {value}")] public string Until => Get(() => Until); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -1)] public string Container => Get(() => Container); } #endregion #region DockerContextInspectSettings @@ -5327,9 +5307,9 @@ public partial class DockerContextInspectSettings : DockerOptionsBase /// Format the output using the given Go template. [Argument(Format = "--format {value}")] public string Format => Get(() => Format); /// [CONTEXT] - [Argument(Format = "{value}")] public string Context => Get(() => Context); + [Argument(Format = "{value}", Position = -2)] public string Context => Get(() => Context); /// [CONTEXT...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Contexts => Get>(() => Contexts); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Contexts => Get>(() => Contexts); } #endregion #region DockerNodePromoteSettings @@ -5364,7 +5344,7 @@ public partial class DockerExecSettings : DockerOptionsBase /// Detached mode: run command in the background. [Argument(Format = "--detach")] public bool? Detach => Get(() => Detach); /// Override the key sequence for detaching a container. - [Argument(Format = "--detach-keys {value}")] public string DetachKeys => Get(() => DetachKeys); + [Argument(Format = "--detach-keys {value}", Secret = false)] public string DetachKeys => Get(() => DetachKeys); /// Set environment variables. [Argument(Format = "--env {value}")] public IReadOnlyList Env => Get>(() => Env); /// Keep STDIN open even if not attached. @@ -5378,11 +5358,11 @@ public partial class DockerExecSettings : DockerOptionsBase /// Working directory inside the container. [Argument(Format = "--workdir {value}")] public string Workdir => Get(() => Workdir); /// CONTAINER - [Argument(Format = "{value}")] public string Container => Get(() => Container); + [Argument(Format = "{value}", Position = -3)] public string Container => Get(() => Container); /// COMMAND - [Argument(Format = "{value}")] public string Command => Get(() => Command); + [Argument(Format = "{value}", Position = -2)] public string Command => Get(() => Command); /// [ARG...] - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Args => Get>(() => Args); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Args => Get>(() => Args); } #endregion #region DockerImageRmSettings @@ -5397,7 +5377,7 @@ public partial class DockerImageRmSettings : DockerOptionsBase /// Do not delete untagged parents. [Argument(Format = "--no-prune")] public bool? NoPrune => Get(() => NoPrune); /// IMAGE - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Images => Get>(() => Images); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Images => Get>(() => Images); } #endregion #region DockerImageSettings @@ -5443,11 +5423,11 @@ public partial class DockerContainerStartSettings : DockerOptionsBase /// Use a custom checkpoint storage directory. [Argument(Format = "--checkpoint-dir {value}")] public string CheckpointDir => Get(() => CheckpointDir); /// Override the key sequence for detaching a container. - [Argument(Format = "--detach-keys {value}")] public string DetachKeys => Get(() => DetachKeys); + [Argument(Format = "--detach-keys {value}", Secret = false)] public string DetachKeys => Get(() => DetachKeys); /// Attach container's STDIN. [Argument(Format = "--interactive")] public bool? Interactive => Get(() => Interactive); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerPluginInspectSettings @@ -5460,7 +5440,7 @@ public partial class DockerPluginInspectSettings : DockerOptionsBase /// Format the output using the given Go template. [Argument(Format = "--format {value}")] public string Format => Get(() => Format); /// PLUGIN - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Plugins => Get>(() => Plugins); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Plugins => Get>(() => Plugins); } #endregion #region DockerLogoutSettings @@ -5503,7 +5483,7 @@ public partial class DockerImageLsSettings : DockerOptionsBase /// Only show numeric IDs. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// [REPOSITORY[:TAG]] - [Argument(Format = "{value}")] public string Repository => Get(() => Repository); + [Argument(Format = "{value}", Position = -1)] public string Repository => Get(() => Repository); } #endregion #region DockerSystemDfSettings @@ -5531,7 +5511,7 @@ public partial class DockerServiceRollbackSettings : DockerOptionsBase /// Suppress progress output. [Argument(Format = "--quiet")] public bool? Quiet => Get(() => Quiet); /// SERVICE - [Argument(Format = "{value}")] public string Service => Get(() => Service); + [Argument(Format = "{value}", Position = -1)] public string Service => Get(() => Service); } #endregion #region DockerRestartSettings @@ -5544,7 +5524,7 @@ public partial class DockerRestartSettings : DockerOptionsBase /// Seconds to wait for stop before killing the container. [Argument(Format = "--time {value}")] public int? Time => Get(() => Time); /// CONTAINER - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Containers => Get>(() => Containers); } #endregion #region DockerTrustSignerRemoveSettings @@ -5557,9 +5537,9 @@ public partial class DockerTrustSignerRemoveSettings : DockerOptionsBase /// Do not prompt for confirmation before removing the most recent signer. [Argument(Format = "--force")] public bool? Force => Get(() => Force); /// NAME - [Argument(Format = "{value}")] public string Name => Get(() => Name); + [Argument(Format = "{value}", Position = -2)] public string Name => Get(() => Name); /// REPOSITORY - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Repositories => Get>(() => Repositories); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Repositories => Get>(() => Repositories); } #endregion #region DockerStackRmSettings @@ -5572,7 +5552,7 @@ public partial class DockerStackRmSettings : DockerStackSettings /// Kubernetes namespace to use. [Argument(Format = "--namespace {value}")] public string Namespace => Get(() => Namespace); /// STACK - [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList Stacks => Get>(() => Stacks); + [Argument(Format = "{value}", Position = -1, Separator = " ")] public IReadOnlyList Stacks => Get>(() => Stacks); } #endregion #region DockerBuildSettings @@ -5653,7 +5633,7 @@ public partial class DockerBuildSettings : DockerOptionsBase /// Ulimit options. [Argument(Format = "--ulimit {value}")] public string Ulimit => Get(() => Ulimit); /// Path or url where the build context is located. - [Argument(Format = "{value}")] public string Path => Get(() => Path); + [Argument(Format = "{value}", Position = -1)] public string Path => Get(() => Path); } #endregion #region DockerOptionsBase @@ -5831,30 +5811,6 @@ [Pure] [Builder(Type = typeof(DockerStackSettings), Property = nameof(DockerStac #endregion } #endregion -#region DockerTopSettingsExtensions -/// -[PublicAPI] -[ExcludeFromCodeCoverage] -public static partial class DockerTopSettingsExtensions -{ - #region Container - /// - [Pure] [Builder(Type = typeof(DockerTopSettings), Property = nameof(DockerTopSettings.Container))] - public static T SetContainer(this T o, string v) where T : DockerTopSettings => o.Modify(b => b.Set(() => o.Container, v)); - /// - [Pure] [Builder(Type = typeof(DockerTopSettings), Property = nameof(DockerTopSettings.Container))] - public static T ResetContainer(this T o) where T : DockerTopSettings => o.Modify(b => b.Remove(() => o.Container)); - #endregion - #region Options - /// - [Pure] [Builder(Type = typeof(DockerTopSettings), Property = nameof(DockerTopSettings.Options))] - public static T SetOptions(this T o, string v) where T : DockerTopSettings => o.Modify(b => b.Set(() => o.Options, v)); - /// - [Pure] [Builder(Type = typeof(DockerTopSettings), Property = nameof(DockerTopSettings.Options))] - public static T ResetOptions(this T o) where T : DockerTopSettings => o.Modify(b => b.Remove(() => o.Options)); - #endregion -} -#endregion #region DockerPullSettingsExtensions /// [PublicAPI] diff --git a/source/Nuke.Common/Tools/Docker/Docker.json b/source/Nuke.Common/Tools/Docker/Docker.json index e6cbf926c..a5b6f5912 100644 --- a/source/Nuke.Common/Tools/Docker/Docker.json +++ b/source/Nuke.Common/Tools/Docker/Docker.json @@ -288,28 +288,6 @@ ] } }, - { - "help": "Display the running processes of a container.", - "postfix": "Top", - "definiteArgument": "top [ps", - "settingsClass": { - "baseClass": "DockerOptionsBase", - "properties": [ - { - "name": "Container", - "type": "string", - "format": "{value}", - "help": "CONTAINER" - }, - { - "name": "Options", - "type": "string", - "format": "{value}", - "help": "OPTIONS]" - } - ] - } - }, { "help": "Pull an image or a repository from a registry.", "postfix": "Pull", @@ -345,6 +323,7 @@ "name": "Name", "type": "string", "format": "{value}", + "position": -1, "help": "NAME[:TAG|@DIGEST]" } ] @@ -398,6 +377,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONFIG" } ] @@ -498,6 +478,7 @@ "name": "Context", "type": "string", "format": "{value}", + "position": -1, "help": "CONTEXT" } ] @@ -538,6 +519,7 @@ "name": "Stack", "type": "string", "format": "{value}", + "position": -1, "help": "STACK" } ] @@ -554,12 +536,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -2, "help": "CONTAINER" }, { "name": "PrivatePort", "type": "string", "format": "{value}", + "position": -1, "help": "[PRIVATE_PORT[/PROTO]]" } ] @@ -576,12 +560,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -2, "help": "CONTAINER" }, { "name": "NewName", "type": "string", "format": "{value}", + "position": -1, "help": "NEW_NAME" } ] @@ -598,12 +584,14 @@ "name": "SourceImage", "type": "string", "format": "{value}", + "position": -2, "help": "SOURCE_IMAGE[:TAG]" }, { "name": "TargetImage", "type": "string", "format": "{value}", + "position": -1, "help": "TARGET_IMAGE[:TAG]" } ] @@ -633,6 +621,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "SECRET" } ] @@ -663,6 +652,7 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -1, "help": "CONTAINER" } ] @@ -703,6 +693,7 @@ "name": "Image", "type": "string", "format": "{value}", + "position": -1, "help": "IMAGE" } ] @@ -1115,12 +1106,14 @@ "name": "Image", "type": "string", "format": "{value}", + "position": -3, "help": "IMAGE" }, { "name": "Command", "type": "string", "format": "{value}", + "position": -2, "help": "[COMMAND]" }, { @@ -1128,6 +1121,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[ARG...]" } ] @@ -1175,6 +1169,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "SERVICE" } ] @@ -1198,6 +1193,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -1313,6 +1309,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -1335,12 +1332,14 @@ "name": "Plugin", "type": "string", "format": "{value}", + "position": -2, "help": "PLUGIN" }, { "name": "PluginDataDir", "type": "string", "format": "{value}", + "position": -1, "help": "PLUGIN-DATA-DIR" } ] @@ -1413,12 +1412,14 @@ "name": "Plugin", "type": "string", "format": "{value}", + "position": -2, "help": "PLUGIN" }, { "name": "Remote", "type": "string", "format": "{value}", + "position": -1, "help": "[REMOTE]" } ] @@ -1455,6 +1456,7 @@ "name": "Worker", "type": "string", "format": "{value}", + "position": -1, "help": "(worker|manager)" } ] @@ -1495,6 +1497,7 @@ "name": "Node", "type": "string", "format": "{value}", + "position": -1, "help": "NODE" } ] @@ -1511,12 +1514,14 @@ "name": "Options", "type": "string", "format": "{value}", + "position": -3, "help": "OPTIONS" }, { "name": "Name", "type": "string", "format": "{value}", + "position": -2, "help": "NAME" }, { @@ -1524,6 +1529,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "REPOSITORY" } ] @@ -1646,6 +1652,7 @@ "name": "Service", "type": "string", "format": "{value}", + "position": -1, "help": "SERVICE|TASK" } ] @@ -1773,6 +1780,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "PLUGIN" } ] @@ -1999,6 +2007,7 @@ "name": "Path", "type": "string", "format": "{value}", + "position": -1, "help": "Path or url where the build context is located." } ] @@ -2021,6 +2030,7 @@ "name": "Image", "type": "string", "format": "{value}", + "position": -1, "help": "IMAGE[:TAG]" } ] @@ -2050,6 +2060,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "IMAGE" } ] @@ -2123,12 +2134,14 @@ "name": "Secret", "type": "string", "format": "{value}", + "position": -2, "help": "SECRET" }, { "name": "File", "type": "string", "format": "{value}", + "position": -1, "help": "Path to file to create the secret from." } ] @@ -2168,6 +2181,8 @@ "name": "Keyfile", "type": "string", "format": "{value}", + "secret": false, + "position": -1, "help": "KEYFILE" } ] @@ -2208,6 +2223,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "IMAGE" } ] @@ -2231,6 +2247,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "IMAGE" } ] @@ -2255,6 +2272,7 @@ "name": "DetachKeys", "type": "string", "format": "--detach-keys {value}", + "secret": false, "help": "Override the key sequence for detaching a container." }, { @@ -2273,6 +2291,7 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -1, "help": "CONTAINER" } ] @@ -2319,6 +2338,7 @@ "name": "Context", "type": "string", "format": "{value}", + "position": -1, "help": "CONTEXT" } ] @@ -2347,12 +2367,14 @@ "name": "Config", "type": "string", "format": "{value}", + "position": -2, "help": "CONFIG" }, { "name": "File", "type": "string", "format": "{value}", + "position": -1, "help": "file|-" } ] @@ -2376,6 +2398,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "VOLUME" } ] @@ -2399,6 +2422,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -2449,12 +2473,14 @@ "name": "ManifestList", "type": "string", "format": "{value}", + "position": -2, "help": "[MANIFEST_LIST]" }, { "name": "Manifest", "type": "string", "format": "{value}", + "position": -1, "help": "MANIFEST" } ] @@ -2511,12 +2537,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -2, "help": "CONTAINER" }, { "name": "Repository", "type": "string", "format": "{value}", + "position": -1, "help": "[REPOSITORY[:TAG]]" } ] @@ -2569,6 +2597,7 @@ "name": "Stack", "type": "string", "format": "{value}", + "position": -1, "help": "STACK" } ] @@ -2715,6 +2744,7 @@ "name": "DetachKeys", "type": "string", "format": "--detach-keys {value}", + "secret": false, "help": "Override the key sequence for detaching a container." }, { @@ -3207,12 +3237,14 @@ "name": "Image", "type": "string", "format": "{value}", + "position": -3, "help": "IMAGE" }, { "name": "Command", "type": "string", "format": "{value}", + "position": -2, "help": "[COMMAND]" }, { @@ -3220,6 +3252,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[ARG...]" } ] @@ -3824,12 +3857,14 @@ "name": "Image", "type": "string", "format": "{value}", + "position": -3, "help": "IMAGE" }, { "name": "Command", "type": "string", "format": "{value}", + "position": -2, "help": "[COMMAND]" }, { @@ -3837,6 +3872,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[ARG...]" } ] @@ -4357,6 +4393,7 @@ "name": "Service", "type": "string", "format": "{value}", + "position": -1, "help": "SERVICE" } ] @@ -4373,12 +4410,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -2, "help": "CONTAINER" }, { "name": "PrivatePort", "type": "string", "format": "{value}", + "position": -1, "help": "[PRIVATE_PORT[/PROTO]]" } ] @@ -4415,6 +4454,7 @@ "name": "Name", "type": "string", "format": "{value}", + "position": -1, "help": "NAME[:TAG]" } ] @@ -4444,6 +4484,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "SERVICE" } ] @@ -4496,12 +4537,14 @@ "name": "Network", "type": "string", "format": "{value}", + "position": -2, "help": "NETWORK" }, { "name": "Container", "type": "string", "format": "{value}", + "position": -1, "help": "CONTAINER" } ] @@ -4598,6 +4641,7 @@ "name": "Repository", "type": "string", "format": "{value}", + "position": -1, "help": "[REPOSITORY[:TAG]]" } ] @@ -4701,6 +4745,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "NAME|ID" } ] @@ -4775,6 +4820,7 @@ "name": "DetachKeys", "type": "string", "format": "--detach-keys {value}", + "secret": false, "help": "Override the key sequence for detaching a container." }, { @@ -4793,6 +4839,7 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -1, "help": "CONTAINER" } ] @@ -4832,6 +4879,7 @@ "name": "CaKey", "type": "string", "format": "--ca-key {value}", + "secret": false, "help": "Path to the PEM-formatted root CA key to use for the new cluster." }, { @@ -4977,12 +5025,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -2, "help": "CONTAINER" }, { "name": "Repository", "type": "string", "format": "{value}", + "position": -1, "help": "[REPOSITORY[:TAG]]" } ] @@ -5074,6 +5124,7 @@ "name": "Stack", "type": "string", "format": "{value}", + "position": -1, "help": "STACK" } ] @@ -5678,12 +5729,14 @@ "name": "Image", "type": "string", "format": "{value}", + "position": -3, "help": "IMAGE" }, { "name": "Command", "type": "string", "format": "{value}", + "position": -2, "help": "[COMMAND]" }, { @@ -5691,6 +5744,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[ARG...]" } ] @@ -5731,6 +5785,7 @@ "name": "Volume", "type": "string", "format": "{value}", + "position": -1, "help": "[VOLUME]" } ] @@ -5768,6 +5823,7 @@ "name": "Server", "type": "string", "format": "{value}", + "position": -1, "help": "[SERVER]" } ] @@ -5824,6 +5880,7 @@ "name": "DetachKeys", "type": "string", "format": "--detach-keys {value}", + "secret": false, "help": "Override the key sequence for detaching a container." }, { @@ -5837,6 +5894,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -5976,6 +6034,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -6006,6 +6065,7 @@ "name": "Plugin", "type": "string", "format": "{value}", + "position": -1, "help": "PLUGIN" } ] @@ -6039,12 +6099,14 @@ "name": "Context", "type": "string", "format": "{value}", + "position": -2, "help": "CONTEXT" }, { "name": "File", "type": "string", "format": "{value}", + "position": -1, "help": "FILE|-" } ] @@ -6080,6 +6142,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -6132,6 +6195,7 @@ "name": "Stack", "type": "string", "format": "{value}", + "position": -1, "help": "STACK" } ] @@ -6155,6 +6219,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "NODE" } ] @@ -6177,12 +6242,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -2, "help": "CONTAINER" }, { "name": "Checkpoint", "type": "string", "format": "{value}", + "position": -1, "help": "CHECKPOINT" } ] @@ -6211,6 +6278,7 @@ "name": "Name", "type": "string", "format": "{value}", + "position": -1, "help": "NAME[:TAG]" } ] @@ -6323,6 +6391,7 @@ "name": "Network", "type": "string", "format": "{value}", + "position": -1, "help": "NETWORK" } ] @@ -6397,6 +6466,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "NETWORK" } ] @@ -6494,6 +6564,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "VOLUME" } ] @@ -6510,6 +6581,7 @@ "name": "ManifestList", "type": "string", "format": "{value}", + "position": -2, "help": "MANIFEST_LIST" }, { @@ -6517,6 +6589,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "MANIFEST" } ] @@ -6545,6 +6618,7 @@ "name": "ManifestList", "type": "string", "format": "{value}", + "position": -1, "help": "MANIFEST_LIST" } ] @@ -6567,6 +6641,7 @@ "name": "Plugin", "type": "string", "format": "{value}", + "position": -1, "help": "PLUGIN" } ] @@ -6601,12 +6676,14 @@ "name": "File", "type": "string", "format": "{value}", + "position": -2, "help": "file|URL|-" }, { "name": "Repository", "type": "string", "format": "{value}", + "position": -1, "help": "[REPOSITORY[:TAG]]" } ] @@ -6737,6 +6814,7 @@ "name": "DetachKeys", "type": "string", "format": "--detach-keys {value}", + "secret": false, "help": "Override the key sequence for detaching a container." }, { @@ -7229,12 +7307,14 @@ "name": "Image", "type": "string", "format": "{value}", + "position": -3, "help": "IMAGE" }, { "name": "Command", "type": "string", "format": "{value}", + "position": -2, "help": "[COMMAND]" }, { @@ -7242,6 +7322,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[ARG...]" } ] @@ -7271,6 +7352,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "self|NODE" } ] @@ -7294,6 +7376,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "IMAGE" } ] @@ -7335,6 +7418,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[CONTAINER...]" } ] @@ -7357,6 +7441,7 @@ "name": "DetachKeys", "type": "string", "format": "--detach-keys {value}", + "secret": false, "help": "Override the key sequence for detaching a container." }, { @@ -7399,12 +7484,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -3, "help": "CONTAINER" }, { "name": "Command", "type": "string", "format": "{value}", + "position": -2, "help": "COMMAND" }, { @@ -7412,6 +7499,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[ARG...]" } ] @@ -7448,7 +7536,7 @@ { "help": "Join a swarm as a node and/or manager.", "postfix": "SwarmJoin", - "definiteArgument": "swarm join HOST:PORT", + "definiteArgument": "swarm join", "settingsClass": { "baseClass": "DockerOptionsBase", "properties": [ @@ -7480,6 +7568,7 @@ "name": "Token", "type": "string", "format": "--token {value}", + "secret": true, "help": "Token for entry into the swarm." } ] @@ -7532,6 +7621,7 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -1, "help": "CONTAINER" } ] @@ -7554,6 +7644,7 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -1, "help": "CONTAINER" } ] @@ -7577,6 +7668,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -7617,12 +7709,15 @@ "name": "Plugin", "type": "string", "format": "{value}", + "position": -2, "help": "PLUGIN" }, { "name": "KeyValues", "type": "Dictionary", "format": "{key}={value}", + "position": -1, + "secret": false, "help": "[KEY=VALUE...]" } ] @@ -7685,12 +7780,14 @@ "name": "File", "type": "string", "format": "{value}", + "position": -2, "help": "file|URL|-" }, { "name": "Repository", "type": "string", "format": "{value}", + "position": -1, "help": "[REPOSITORY[:TAG]]" } ] @@ -7724,6 +7821,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -7829,6 +7927,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[NODE...]" } ] @@ -7845,12 +7944,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -2, "help": "CONTAINER" }, { "name": "Options", "type": "string", "format": "{value}", + "position": -1, "help": "OPTIONS]" } ] @@ -7867,12 +7968,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -2, "help": "CONTAINER" }, { "name": "NewName", "type": "string", "format": "{value}", + "position": -1, "help": "NEW_NAME" } ] @@ -7913,6 +8016,7 @@ "name": "Image", "type": "string", "format": "{value}", + "position": -1, "help": "IMAGE" } ] @@ -7987,12 +8091,14 @@ "name": "SourceImage", "type": "string", "format": "{value}", + "position": -2, "help": "SOURCE_IMAGE[:TAG]" }, { "name": "TargetImage", "type": "string", "format": "{value}", + "position": -1, "help": "TARGET_IMAGE[:TAG]" } ] @@ -8015,6 +8121,7 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -1, "help": "CONTAINER" } ] @@ -8037,12 +8144,14 @@ "name": "Network", "type": "string", "format": "{value}", + "position": -2, "help": "NETWORK" }, { "name": "Container", "type": "string", "format": "{value}", + "position": -1, "help": "CONTAINER" } ] @@ -8269,6 +8378,7 @@ "name": "Path", "type": "string", "format": "{value}", + "position": -1, "help": "Path or url where the build context is located." } ] @@ -8501,6 +8611,7 @@ "name": "Path", "type": "string", "format": "{value}", + "position": -1, "help": "Path or url where the build context is located." } ] @@ -8624,6 +8735,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[CONTAINER...]" } ] @@ -8676,6 +8788,7 @@ "name": "Term", "type": "string", "format": "{value}", + "position": -1, "help": "TERM" } ] @@ -8714,6 +8827,7 @@ "name": "Plugin", "type": "string", "format": "{value}", + "position": -1, "help": "PLUGIN[:TAG]" } ] @@ -8779,6 +8893,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -8886,6 +9001,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -8902,12 +9018,15 @@ "name": "Plugin", "type": "string", "format": "{value}", + "position": -2, "help": "PLUGIN" }, { "name": "KeyValues", "type": "Dictionary", "format": "{key}={value}", + "position": -1, + "secret": false, "help": "KEY=VALUE" } ] @@ -8947,12 +9066,14 @@ "name": "Context", "type": "string", "format": "{value}", + "position": -2, "help": "CONTEXT" }, { "name": "File", "type": "string", "format": "{value}", + "position": -1, "help": "[FILE|-]" } ] @@ -8993,12 +9114,14 @@ "name": "ManifestList", "type": "string", "format": "{value}", + "position": -2, "help": "MANIFEST_LIST" }, { "name": "Manifest", "type": "string", "format": "{value}", + "position": -1, "help": "MANIFEST" } ] @@ -9039,6 +9162,7 @@ "name": "Name", "type": "string", "format": "{value}", + "position": -1, "help": "NAME[:TAG|@DIGEST]" } ] @@ -9130,6 +9254,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -9153,6 +9278,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -9181,12 +9307,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -2, "help": "CONTAINER" }, { "name": "Checkpoint", "type": "string", "format": "{value}", + "position": -1, "help": "CHECKPOINT" } ] @@ -9256,6 +9384,7 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -1, "help": "CONTAINER" } ] @@ -9278,6 +9407,7 @@ "name": "Context", "type": "string", "format": "{value}", + "position": -2, "help": "[CONTEXT]" }, { @@ -9285,6 +9415,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[CONTEXT...]" } ] @@ -9341,6 +9472,7 @@ "name": "DetachKeys", "type": "string", "format": "--detach-keys {value}", + "secret": false, "help": "Override the key sequence for detaching a container." }, { @@ -9383,12 +9515,14 @@ "name": "Container", "type": "string", "format": "{value}", + "position": -3, "help": "CONTAINER" }, { "name": "Command", "type": "string", "format": "{value}", + "position": -2, "help": "COMMAND" }, { @@ -9396,6 +9530,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "[ARG...]" } ] @@ -9425,6 +9560,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "IMAGE" } ] @@ -9491,6 +9627,7 @@ "name": "DetachKeys", "type": "string", "format": "--detach-keys {value}", + "secret": false, "help": "Override the key sequence for detaching a container." }, { @@ -9504,6 +9641,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -9527,6 +9665,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "PLUGIN" } ] @@ -9603,6 +9742,7 @@ "name": "Repository", "type": "string", "format": "{value}", + "position": -1, "help": "[REPOSITORY[:TAG]]" } ] @@ -9653,6 +9793,7 @@ "name": "Service", "type": "string", "format": "{value}", + "position": -1, "help": "SERVICE" } ] @@ -9676,6 +9817,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "CONTAINER" } ] @@ -9698,6 +9840,7 @@ "name": "Name", "type": "string", "format": "{value}", + "position": -2, "help": "NAME" }, { @@ -9705,6 +9848,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "REPOSITORY" } ] @@ -9728,6 +9872,7 @@ "type": "List", "format": "{value}", "separator": " ", + "position": -1, "help": "STACK" } ] @@ -9954,6 +10099,7 @@ "name": "Path", "type": "string", "format": "{value}", + "position": -1, "help": "Path or url where the build context is located." } ] diff --git a/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs b/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs index 5bacfe12d..3e5f421f1 100644 --- a/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs +++ b/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs @@ -685,7 +685,7 @@ public partial class DotNetNuGetAddSourceSettings : ToolOptions /// Password to be used when connecting to an authenticated source. [Argument(Format = "--password {value}", Secret = true)] public string Password => Get(() => Password); /// Enables storing portable package source credentials by disabling password encryption. - [Argument(Format = "--store-password-in-clear-text")] public bool? StorePasswordInClearText => Get(() => StorePasswordInClearText); + [Argument(Format = "--store-password-in-clear-text", Secret = false)] public bool? StorePasswordInClearText => Get(() => StorePasswordInClearText); /// List of valid authentication types for this source. Set this to basic if the server advertises NTLM or Negotiate and your credentials must be sent using the Basic mechanism, for instance when using a PAT with on-premises Azure DevOps Server. Other valid values include negotiate, kerberos, ntlm, and digest, but these values are unlikely to be useful. [Argument(Format = "--valid-authentication-types {value}", Separator = ",")] public IReadOnlyList ValidAuthenticationTypes => Get>(() => ValidAuthenticationTypes); /// The NuGet configuration file (nuget.config) to use. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see Common NuGet Configurations. @@ -708,7 +708,7 @@ public partial class DotNetNuGetUpdateSourceSettings : ToolOptions /// Password to be used when connecting to an authenticated source. [Argument(Format = "--password {value}", Secret = true)] public string Password => Get(() => Password); /// Enables storing portable package source credentials by disabling password encryption. - [Argument(Format = "--store-password-in-clear-text")] public bool? StorePasswordInClearText => Get(() => StorePasswordInClearText); + [Argument(Format = "--store-password-in-clear-text", Secret = false)] public bool? StorePasswordInClearText => Get(() => StorePasswordInClearText); /// List of valid authentication types for this source. Set this to basic if the server advertises NTLM or Negotiate and your credentials must be sent using the Basic mechanism, for instance when using a PAT with on-premises Azure DevOps Server. Other valid values include negotiate, kerberos, ntlm, and digest, but these values are unlikely to be useful. [Argument(Format = "--valid-authentication-types {value}", Separator = ",")] public IReadOnlyList ValidAuthenticationTypes => Get>(() => ValidAuthenticationTypes); /// The NuGet configuration file (nuget.config) to use. If specified, only the settings from this file will be used. If not specified, the hierarchy of configuration files from the current directory will be used. For more information, see Common NuGet Configurations. diff --git a/source/Nuke.Common/Tools/DotNet/DotNet.json b/source/Nuke.Common/Tools/DotNet/DotNet.json index 81dfb1cff..e242f0f82 100644 --- a/source/Nuke.Common/Tools/DotNet/DotNet.json +++ b/source/Nuke.Common/Tools/DotNet/DotNet.json @@ -1095,6 +1095,7 @@ "name": "StorePasswordInClearText", "type": "bool", "format": "--store-password-in-clear-text", + "secret": false, "help": "Enables storing portable package source credentials by disabling password encryption." }, { @@ -1150,6 +1151,7 @@ "name": "StorePasswordInClearText", "type": "bool", "format": "--store-password-in-clear-text", + "secret": false, "help": "Enables storing portable package source credentials by disabling password encryption." }, { diff --git a/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs b/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs index 15fe6892e..68fc8902a 100644 --- a/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs +++ b/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs @@ -88,7 +88,7 @@ public partial class GitReleaseManagerAddAssetsSettings : ToolOptions /// Path to where log file should be created. Defaults is logging to console. [Argument(Format = "--logFilePath {value}")] public string LogFilePath => Get(() => LogFilePath); /// The access token to access GitHub with. - [Argument(Format = "--token {value}")] public string Token => Get(() => Token); + [Argument(Format = "--token {value}", Secret = false)] public string Token => Get(() => Token); } #endregion #region GitReleaseManagerCloseSettings @@ -113,7 +113,7 @@ public partial class GitReleaseManagerCloseSettings : ToolOptions /// Path to where log file should be created. Defaults is logging to console. [Argument(Format = "--logFilePath {value}")] public string LogFilePath => Get(() => LogFilePath); /// The access token to access GitHub with. - [Argument(Format = "--token {value}")] public string Token => Get(() => Token); + [Argument(Format = "--token {value}", Secret = false)] public string Token => Get(() => Token); } #endregion #region GitReleaseManagerCreateSettings @@ -148,7 +148,7 @@ public partial class GitReleaseManagerCreateSettings : ToolOptions /// Path to where log file should be created. Defaults is logging to console. [Argument(Format = "--logFilePath {value}")] public string LogFilePath => Get(() => LogFilePath); /// The access token to access GitHub with. - [Argument(Format = "--token {value}")] public string Token => Get(() => Token); + [Argument(Format = "--token {value}", Secret = false)] public string Token => Get(() => Token); } #endregion #region GitReleaseManagerExportSettings @@ -175,7 +175,7 @@ public partial class GitReleaseManagerExportSettings : ToolOptions /// Path to where log file should be created. Defaults is logging to console. [Argument(Format = "--logFilePath {value}")] public string LogFilePath => Get(() => LogFilePath); /// The access token to access GitHub with. - [Argument(Format = "--token {value}")] public string Token => Get(() => Token); + [Argument(Format = "--token {value}", Secret = false)] public string Token => Get(() => Token); } #endregion #region GitReleaseManagerPublishSettings @@ -200,7 +200,7 @@ public partial class GitReleaseManagerPublishSettings : ToolOptions /// Path to where log file should be created. Defaults is logging to console. [Argument(Format = "--logFilePath {value}")] public string LogFilePath => Get(() => LogFilePath); /// The access token to access GitHub with. - [Argument(Format = "--token {value}")] public string Token => Get(() => Token); + [Argument(Format = "--token {value}", Secret = false)] public string Token => Get(() => Token); } #endregion #region GitReleaseManagerAddAssetsSettingsExtensions diff --git a/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.json b/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.json index c3d45b359..3df97c30b 100644 --- a/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.json +++ b/source/Nuke.Common/Tools/GitReleaseManager/GitReleaseManager.json @@ -177,6 +177,7 @@ "name": "Token", "type": "string", "format": "--token {value}", + "secret": false, "help": "The access token to access GitHub with." } ] diff --git a/source/Nuke.Common/Tools/Helm/Helm.Generated.cs b/source/Nuke.Common/Tools/Helm/Helm.Generated.cs index a46a6dacb..3fce9c35a 100644 --- a/source/Nuke.Common/Tools/Helm/Helm.Generated.cs +++ b/source/Nuke.Common/Tools/Helm/Helm.Generated.cs @@ -1182,7 +1182,7 @@ public partial class HelmSearchSettings : HelmOptionsBase /// Show the long listing, with each version of each chart on its own line. [Argument(Format = "--versions", Secret = false)] public bool? Versions => Get(() => Versions); /// The keyword to search for. - [Argument(Format = "{value}")] public string Keyword => Get(() => Keyword); + [Argument(Format = "{value}", Secret = false)] public string Keyword => Get(() => Keyword); } #endregion #region HelmServeSettings diff --git a/source/Nuke.Common/Tools/Helm/Helm.json b/source/Nuke.Common/Tools/Helm/Helm.json index 1a6bfea66..4cc98861e 100644 --- a/source/Nuke.Common/Tools/Helm/Helm.json +++ b/source/Nuke.Common/Tools/Helm/Helm.json @@ -2287,6 +2287,7 @@ "name": "Keyword", "type": "string", "format": "{value}", + "secret": false, "help": "The keyword to search for." } ] diff --git a/source/Nuke.Common/Tools/ILRepack/ILRepack.Generated.cs b/source/Nuke.Common/Tools/ILRepack/ILRepack.Generated.cs index b247a2f7d..883c94774 100644 --- a/source/Nuke.Common/Tools/ILRepack/ILRepack.Generated.cs +++ b/source/Nuke.Common/Tools/ILRepack/ILRepack.Generated.cs @@ -44,9 +44,9 @@ public partial class ILRepackTasks : ToolTasks, IRequireNuGetPackage public partial class ILRepackSettings : ToolOptions { /// Specifies a keyfile to sign the output assembly. - [Argument(Format = "--keyfile:{value}")] public string KeyFile => Get(() => KeyFile); + [Argument(Format = "--keyfile:{value}", Secret = false)] public string KeyFile => Get(() => KeyFile); /// Specifies a key container to sign the output assembly (takes precedence over --keyfile). - [Argument(Format = "--keycontainer:{value}")] public string KeyContainer => Get(() => KeyContainer); + [Argument(Format = "--keycontainer:{value}", Secret = false)] public string KeyContainer => Get(() => KeyContainer); /// Enable logging (to a file, if given) (default is disabled). [Argument(Format = "--log:{value}")] public string LogFile => Get(() => LogFile); /// Target assembly version. diff --git a/source/Nuke.Common/Tools/ILRepack/ILRepack.json b/source/Nuke.Common/Tools/ILRepack/ILRepack.json index 227f43d4e..6a4d9c47e 100644 --- a/source/Nuke.Common/Tools/ILRepack/ILRepack.json +++ b/source/Nuke.Common/Tools/ILRepack/ILRepack.json @@ -13,12 +13,14 @@ "name": "KeyFile", "type": "string", "format": "--keyfile:{value}", + "secret": false, "help": "Specifies a keyfile to sign the output assembly." }, { "name": "KeyContainer", "type": "string", "format": "--keycontainer:{value}", + "secret": false, "help": "Specifies a key container to sign the output assembly (takes precedence over --keyfile)." }, { diff --git a/source/Nuke.Common/Tools/Kubernetes/Kubernetes.Generated.cs b/source/Nuke.Common/Tools/Kubernetes/Kubernetes.Generated.cs index b1eb0a7a3..4ede9fd4d 100644 --- a/source/Nuke.Common/Tools/Kubernetes/Kubernetes.Generated.cs +++ b/source/Nuke.Common/Tools/Kubernetes/Kubernetes.Generated.cs @@ -399,7 +399,7 @@ public partial class KubernetesRunSettings : KubernetesOptionsBase /// The name of the container. [Argument(Format = "{value}")] public string Name => Get(() => Name); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// If true, wait for the Pod to start running, and then attach to the Pod as if 'kubectl attach ...' were called. Default false, unless '-i/--stdin' is set, in which case the default is true. With '--restart=Never' the exit code of the container process is returned. [Argument(Format = "--attach={value}")] public bool? Attach => Get(() => Attach); /// If true, cascade the deletion of the resources managed by this resource (e.g. Pods created by a ReplicationController). Default true. @@ -488,7 +488,7 @@ public partial class KubernetesGetSettings : KubernetesOptionsBase /// If present, list the requested object(s) across all namespaces. Namespace in current context is ignored even if specified with --namespace. [Argument(Format = "--all-namespaces={value}")] public bool? AllNamespaces => Get(() => AllNamespaces); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// Return large lists in chunks rather than all at once. Pass 0 to disable. This flag is beta and may change in the future. [Argument(Format = "--chunk-size={value}")] public long? ChunkSize => Get(() => ChunkSize); /// If true, use 'export' for the resources. Exported resources are stripped of cluster-specific information. @@ -597,7 +597,7 @@ public partial class KubernetesExecSettings : KubernetesOptionsBase public partial class KubernetesRollingUpdateSettings : KubernetesOptionsBase { /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// Container name which will have its image upgraded. Only relevant when --image is specified, ignored otherwise. Required when using --image on a multi-container pod. [Argument(Format = "--container={value}")] public string Container => Get(() => Container); /// The key to use to differentiate between two different controllers, default 'deployment'. Only relevant when --image is specified, ignored otherwise. @@ -640,7 +640,7 @@ public partial class KubernetesLabelSettings : KubernetesOptionsBase /// Select all resources, including uninitialized ones, in the namespace of the specified resource types. [Argument(Format = "--all={value}")] public bool? All => Get(() => All); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// If true, only print the object that would be sent, without sending it. [Argument(Format = "--dry-run={value}")] public bool? DryRun => Get(() => DryRun); /// Selector (field query) to filter on, supports '=', '==', and '!='.(e.g. --field-selector key1=value1,key2=value2). The server only supports a limited number of field queries per type. @@ -683,7 +683,7 @@ public partial class KubernetesAnnotateSettings : KubernetesOptionsBase /// Select all resources, including uninitialized ones, in the namespace of the specified resource types. [Argument(Format = "--all={value}")] public bool? All => Get(() => All); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// If true, only print the object that would be sent, without sending it. [Argument(Format = "--dry-run={value}")] public bool? DryRun => Get(() => DryRun); /// Selector (field query) to filter on, supports '=', '==', and '!='.(e.g. --field-selector key1=value1,key2=value2). The server only supports a limited number of field queries per type. @@ -757,7 +757,7 @@ public partial class KubernetesDeleteSettings : KubernetesOptionsBase public partial class KubernetesExposeSettings : KubernetesOptionsBase { /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// ClusterIP to be assigned to the service. Leave empty to auto-allocate, or set to 'None' to create a headless service. [Argument(Format = "--cluster-ip={value}")] public string ClusterIp => Get(() => ClusterIp); /// Synonym for --target-port. @@ -898,7 +898,7 @@ public partial class KubernetesPatchSettings : KubernetesOptionsBase /// The type or/and name of the ressource. [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList TypeName => Get>(() => TypeName); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// If true, only print the object that would be sent, without sending it. [Argument(Format = "--dry-run={value}")] public bool? DryRun => Get(() => DryRun); /// Filename, directory, or URL to files identifying the resource to update. @@ -927,7 +927,7 @@ public partial class KubernetesPatchSettings : KubernetesOptionsBase public partial class KubernetesReplaceSettings : KubernetesOptionsBase { /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// If true, cascade the deletion of the resources managed by this resource (e.g. Pods created by a ReplicationController). Default true. [Argument(Format = "--cascade={value}")] public bool? Cascade => Get(() => Cascade); /// to use to replace the resource. @@ -966,7 +966,7 @@ public partial class KubernetesTaintSettings : KubernetesOptionsBase /// Select all nodes in the cluster. [Argument(Format = "--all={value}")] public bool? All => Get(() => All); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// Output format. One of: json|yaml|name|template|go-template|go-template-file|templatefile|jsonpath|jsonpath-file. [Argument(Format = "--output={value}")] public KubernetesTaintOutput Output => Get(() => Output); /// If true, allow taints to be overwritten, otherwise reject taint updates that overwrite existing taints. @@ -1056,7 +1056,7 @@ public partial class KubernetesApplySettings : KubernetesOptionsBase /// Select all resources in the namespace of the specified resource types. [Argument(Format = "--all={value}")] public bool? All => Get(() => All); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// If true, cascade the deletion of the resources managed by this resource (e.g. Pods created by a ReplicationController). Default true. [Argument(Format = "--cascade={value}")] public bool? Cascade => Get(() => Cascade); /// If true, only print the object that would be sent, without sending it. @@ -1107,7 +1107,7 @@ public partial class KubernetesApplyKustomizeSettings : KubernetesOptionsBase /// Select all resources in the namespace of the specified resource types. [Argument(Format = "--all={value}")] public bool? All => Get(() => All); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// If true, cascade the deletion of the resources managed by this resource (e.g. Pods created by a ReplicationController). Default true. [Argument(Format = "--cascade={value}")] public bool? Cascade => Get(() => Cascade); /// If true, only print the object that would be sent, without sending it. @@ -1208,7 +1208,7 @@ public partial class KubernetesUncordonSettings : KubernetesOptionsBase public partial class KubernetesAutoscaleSettings : KubernetesOptionsBase { /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// The target average CPU utilization (represented as a percent of requested CPU) over all the pods. If it's not specified or negative, a default autoscaling policy will be used. [Argument(Format = "--cpu-percent={value}")] public int? CpuPercent => Get(() => CpuPercent); /// If true, only print the object that would be sent, without sending it. @@ -1265,7 +1265,7 @@ public partial class KubernetesWaitSettings : KubernetesOptionsBase /// If present, list the requested object(s) across all namespaces. Namespace in current context is ignored even if specified with --namespace. [Argument(Format = "--all-namespaces={value}")] public bool? AllNamespaces => Get(() => AllNamespaces); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// identifying the resource. [Argument(Format = "--filename={value}", Separator = ",")] public IReadOnlyList Filename => Get>(() => Filename); /// The condition to wait on: [delete|condition=condition-name]. @@ -1290,7 +1290,7 @@ public partial class KubernetesWaitSettings : KubernetesOptionsBase public partial class KubernetesConvertSettings : KubernetesOptionsBase { /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// Filename, directory, or URL to files to need to get converted. [Argument(Format = "--filename={value}", Separator = ",")] public IReadOnlyList Filename => Get>(() => Filename); /// If true, convert will NOT try to contact api-server but run locally. @@ -1317,7 +1317,7 @@ public partial class KubernetesCreateSettings : KubernetesOptionsBase /// The type (and name) of the resource. When only specifying a type either a --selector or --all needs to be specified [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList TypeName => Get>(() => TypeName); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// If true, only print the object that would be sent, without sending it. [Argument(Format = "--dry-run={value}")] public bool? DryRun => Get(() => DryRun); /// Edit the API resource before creating. @@ -1367,7 +1367,7 @@ public partial class KubernetesPortForwardSettings : KubernetesOptionsBase public partial class KubernetesRunContainerSettings : KubernetesOptionsBase { /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// If true, wait for the Pod to start running, and then attach to the Pod as if 'kubectl attach ...' were called. Default false, unless '-i/--stdin' is set, in which case the default is true. With '--restart=Never' the exit code of the container process is returned. [Argument(Format = "--attach={value}")] public bool? Attach => Get(() => Attach); /// If true, cascade the deletion of the resources managed by this resource (e.g. Pods created by a ReplicationController). Default true. @@ -1454,7 +1454,7 @@ public partial class KubernetesEditSettings : KubernetesOptionsBase /// The type or/and name of the ressource. [Argument(Format = "{value}", Separator = " ")] public IReadOnlyList TypeName => Get>(() => TypeName); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// Filename, directory, or URL to files to use to edit the resource. [Argument(Format = "--filename={value}", Separator = ",")] public IReadOnlyList Filename => Get>(() => Filename); /// If true, the kubectl command applies to uninitialized objects. If explicitly set to false, this flag overrides other flags that make the kubectl commands apply to uninitialized objects, e.g., "--all". Objects with empty metadata.initializers are regarded as initialized. @@ -1487,7 +1487,7 @@ public partial class KubernetesScaleSettings : KubernetesOptionsBase /// Select all resources in the namespace of the specified resource types. [Argument(Format = "--all={value}")] public bool? All => Get(() => All); /// If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. - [Argument(Format = "--allow-missing-template-keys={value}")] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); + [Argument(Format = "--allow-missing-template-keys={value}", Secret = false)] public bool? AllowMissingTemplateKeys => Get(() => AllowMissingTemplateKeys); /// Precondition for current size. Requires that the current size of the resource match this value in order to scale. [Argument(Format = "--current-replicas={value}")] public int? CurrentReplicas => Get(() => CurrentReplicas); /// Filename, directory, or URL to files identifying the resource to set a new size. diff --git a/source/Nuke.Common/Tools/Kubernetes/Kubernetes.json b/source/Nuke.Common/Tools/Kubernetes/Kubernetes.json index ab18d0bf6..e183894c4 100644 --- a/source/Nuke.Common/Tools/Kubernetes/Kubernetes.json +++ b/source/Nuke.Common/Tools/Kubernetes/Kubernetes.json @@ -172,6 +172,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -424,6 +425,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -666,6 +668,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -678,6 +681,7 @@ "name": "DeploymentLabelKey", "type": "string", "format": "--deployment-label-key={value}", + "secret": false, "help": "The key to use to differentiate between two different controllers, default 'deployment'. Only relevant when --image is specified, ignored otherwise." }, { @@ -781,6 +785,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -896,6 +901,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -1087,6 +1093,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -1385,6 +1392,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -1456,6 +1464,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -1559,6 +1568,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -1732,6 +1742,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -1869,6 +1880,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -2086,6 +2098,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -2204,6 +2217,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -2263,6 +2277,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -2329,6 +2344,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -2448,6 +2464,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -2694,6 +2711,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { @@ -2777,6 +2795,7 @@ "name": "AllowMissingTemplateKeys", "type": "bool", "format": "--allow-missing-template-keys={value}", + "secret": false, "help": "If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats." }, { diff --git a/source/Nuke.Common/Tools/NSwag/NSwag.Generated.cs b/source/Nuke.Common/Tools/NSwag/NSwag.Generated.cs index 8db7769f5..96a7276f0 100644 --- a/source/Nuke.Common/Tools/NSwag/NSwag.Generated.cs +++ b/source/Nuke.Common/Tools/NSwag/NSwag.Generated.cs @@ -1150,7 +1150,7 @@ public partial class NSwagSwaggerToCSharpControllerSettings : ToolOptions, ITool /// Use ASP.Net Core (2.1) ActionResult type as return type (default: false) [Argument(Format = "/UseActionResultType:{value}")] public bool? UseActionResultType => Get(() => UseActionResultType); /// Add a cancellation token parameter (default: false). - [Argument(Format = "/UseCancellationToken:{value}")] public bool? UseCancellationToken => Get(() => UseCancellationToken); + [Argument(Format = "/UseCancellationToken:{value}", Secret = false)] public bool? UseCancellationToken => Get(() => UseCancellationToken); /// The additional contract namespace usages. [Argument(Format = "/AdditionalContractNamespaceUsages:{value}")] public IReadOnlyList AdditionalContractNamespaceUsages => Get>(() => AdditionalContractNamespaceUsages); /// The additional namespace usages. @@ -1290,7 +1290,7 @@ public partial class NSwagOpenApiToTypeScriptClientSettings : ToolOptions, ITool public partial class NSwagSwaggerToTypeScriptClientSettings : ToolOptions, IToolOptionsWithFramework { /// The token name for injecting the API base URL string (used in the Angular template, default: 'API_BASE_URL'). - [Argument(Format = "/BaseUrlTokenName:{value}")] public string BaseUrlTokenName => Get(() => BaseUrlTokenName); + [Argument(Format = "/BaseUrlTokenName:{value}", Secret = false)] public string BaseUrlTokenName => Get(() => BaseUrlTokenName); /// The class name of the generated client. [Argument(Format = "/ClassName:{value}")] public string ClassName => Get(() => ClassName); /// The type names which always generate plain TypeScript classes. @@ -1338,7 +1338,7 @@ public partial class NSwagSwaggerToTypeScriptClientSettings : ToolOptions, ITool /// Specifies whether required types should be imported (default: true). [Argument(Format = "/ImportRequiredTypes:{value}")] public bool? ImportRequiredTypes => Get(() => ImportRequiredTypes); /// The Angular injection token type (default 'InjectionToken', 'OpaqueToken'). - [Argument(Format = "/InjectionTokenType:{value}")] public InjectionTokenType InjectionTokenType => Get(() => InjectionTokenType); + [Argument(Format = "/InjectionTokenType:{value}", Secret = false)] public InjectionTokenType InjectionTokenType => Get(() => InjectionTokenType); /// Inline named any types (default: false). [Argument(Format = "/InlineNamedAny:{value}")] public bool? InlineNamedAny => Get(() => InlineNamedAny); /// Inline named dictionaries (default: false). diff --git a/source/Nuke.Common/Tools/NSwag/NSwag.json b/source/Nuke.Common/Tools/NSwag/NSwag.json index e759fc5a9..a59767d4d 100644 --- a/source/Nuke.Common/Tools/NSwag/NSwag.json +++ b/source/Nuke.Common/Tools/NSwag/NSwag.json @@ -689,6 +689,7 @@ "name": "UseCancellationToken", "type": "bool", "format": "/UseCancellationToken:{value}", + "secret": false, "help": "Add a cancellation token parameter (default: false)." } ] @@ -720,6 +721,7 @@ "name": "BaseUrlTokenName", "type": "string", "format": "/BaseUrlTokenName:{value}", + "secret": false, "help": "The token name for injecting the API base URL string (used in the Angular template, default: 'API_BASE_URL')." }, { @@ -864,6 +866,7 @@ "name": "InjectionTokenType", "type": "InjectionTokenType", "format": "/InjectionTokenType:{value}", + "secret": false, "help": "The Angular injection token type (default 'InjectionToken', 'OpaqueToken')." }, { diff --git a/source/Nuke.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs b/source/Nuke.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs index f36eeed88..ddae16931 100644 --- a/source/Nuke.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs +++ b/source/Nuke.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs @@ -46,19 +46,19 @@ public partial class NuGetKeyVaultSignToolSettings : ToolOptions /// Package to sign. [Argument(Format = "{value}")] public string File => Get(() => File); /// A fully qualified URL of the key vault with the certificate that will be used for signing. An example value might be https://my-vault.vault.azure.net. - [Argument(Format = "--azure-key-vault-url {value}")] public string KeyVaultUrl => Get(() => KeyVaultUrl); + [Argument(Format = "--azure-key-vault-url {value}", Secret = false)] public string KeyVaultUrl => Get(() => KeyVaultUrl); /// This is the client ID used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option. If this parameter is supplied, --azure-key-vault-client-secret and --azure-key-vault-tenant-id must be supplied as well. - [Argument(Format = "--azure-key-vault-client-id {value}")] public string KeyVaultClientId => Get(() => KeyVaultClientId); + [Argument(Format = "--azure-key-vault-client-id {value}", Secret = false)] public string KeyVaultClientId => Get(() => KeyVaultClientId); /// This is the client secret used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option or when using managed identities with --azure-key-vault-managed-identity. If this parameter is supplied, --azure-key-vault-client-id and --azure-key-vault-tenant-id must be supplied as well. [Argument(Format = "--azure-key-vault-client-secret {value}", Secret = true)] public string KeyVaultClientSecret => Get(() => KeyVaultClientSecret); /// This is the tenant id used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option or when using managed identities with --azure-key-vault-managed-identity. If this parameter is supplied, --azure-key-vault-client-id and --azure-key-vault-client-secret must be supplied as well. - [Argument(Format = "--azure-key-vault-tenant-id {value}")] public string KeyVaultTenantId => Get(() => KeyVaultTenantId); + [Argument(Format = "--azure-key-vault-tenant-id {value}", Secret = false)] public string KeyVaultTenantId => Get(() => KeyVaultTenantId); /// The name of the certificate used to perform the signing operation. - [Argument(Format = "--azure-key-vault-certificate {value}")] public string KeyVaultCertificateName => Get(() => KeyVaultCertificateName); + [Argument(Format = "--azure-key-vault-certificate {value}", Secret = false)] public string KeyVaultCertificateName => Get(() => KeyVaultCertificateName); /// An access token used to authenticate to Azure. This can be used instead of the --azure-key-vault-managed-identity, --azure-key-vault-client-id and --azure-key-vault-client-secret options. This is useful if NuGetKeyVaultSignTool is being used as part of another program that is already authenticated and has an access token to Azure. [Argument(Format = "--azure-key-vault-accesstoken {value}", Secret = true)] public string KeyVaultAccessToken => Get(() => KeyVaultAccessToken); /// Use the ambient Managed Identity to authenticate to Azure. This can be used instead of the --azure-key-vault-accesstoken, --azure-key-vault-client-id and --azure-key-vault-client-secret options. This is useful if NuGetKeyVaultSignTool is being used on a VM/service/CLI that is configured for managed identities to Azure. - [Argument(Format = "--azure-key-vault-managed-identity")] public bool? KeyVaultManagedIdentity => Get(() => KeyVaultManagedIdentity); + [Argument(Format = "--azure-key-vault-managed-identity", Secret = false)] public bool? KeyVaultManagedIdentity => Get(() => KeyVaultManagedIdentity); /// A URL to an RFC3161 compliant timestamping service. This parameter serves the same purpose as the /tr option in the Windows SDK signtool. This parameter should be used in favor of the --timestamp option. Using this parameter will allow using modern, RFC3161 timestamps which also support timestamp digest algorithms other than SHA1. [Argument(Format = "--timestamp-rfc3161 {value}")] public string TimestampRfc3161Url => Get(() => TimestampRfc3161Url); /// The name of the digest algorithm used for timestamping. This parameter is ignored unless the --timestamp-rfc3161 parameter is also supplied. The default value is sha256. diff --git a/source/Nuke.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json b/source/Nuke.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json index 43387bb58..f4a599410 100644 --- a/source/Nuke.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json +++ b/source/Nuke.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json @@ -14,18 +14,21 @@ "name": "File", "type": "string", "format": "{value}", + "position": 1, "help": "Package to sign." }, { "name": "KeyVaultUrl", "type": "string", "format": "--azure-key-vault-url {value}", + "secret": false, "help": "A fully qualified URL of the key vault with the certificate that will be used for signing. An example value might be https://my-vault.vault.azure.net." }, { "name": "KeyVaultClientId", "type": "string", "format": "--azure-key-vault-client-id {value}", + "secret": false, "help": "This is the client ID used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option. If this parameter is supplied, --azure-key-vault-client-secret and --azure-key-vault-tenant-id must be supplied as well." }, { @@ -39,12 +42,14 @@ "name": "KeyVaultTenantId", "type": "string", "format": "--azure-key-vault-tenant-id {value}", + "secret": false, "help": "This is the tenant id used to authenticate to Azure, which will be used to generate an access token. This parameter is not required if an access token is supplied directly with the --azure-key-vault-accesstoken option or when using managed identities with --azure-key-vault-managed-identity. If this parameter is supplied, --azure-key-vault-client-id and --azure-key-vault-client-secret must be supplied as well." }, { "name": "KeyVaultCertificateName", "type": "string", "format": "--azure-key-vault-certificate {value}", + "secret": false, "help": "The name of the certificate used to perform the signing operation." }, { @@ -58,6 +63,7 @@ "name": "KeyVaultManagedIdentity", "type": "bool", "format": "--azure-key-vault-managed-identity", + "secret": false, "help": "Use the ambient Managed Identity to authenticate to Azure. This can be used instead of the --azure-key-vault-accesstoken, --azure-key-vault-client-id and --azure-key-vault-client-secret options. This is useful if NuGetKeyVaultSignTool is being used on a VM/service/CLI that is configured for managed identities to Azure." }, { diff --git a/source/Nuke.Common/Tools/Pulumi/Pulumi.Generated.cs b/source/Nuke.Common/Tools/Pulumi/Pulumi.Generated.cs index b7b78a786..689088915 100644 --- a/source/Nuke.Common/Tools/Pulumi/Pulumi.Generated.cs +++ b/source/Nuke.Common/Tools/Pulumi/Pulumi.Generated.cs @@ -442,7 +442,7 @@ public partial class PulumiConfigCopySettings : ToolOptions public partial class PulumiConfigGetSettings : ToolOptions { /// The key to the key-value pair in the configuration. - [Argument(Format = "{value}", Position = 1)] public string Key => Get(() => Key); + [Argument(Format = "{value}", Position = 1, Secret = false)] public string Key => Get(() => Key); /// Serialize the preview diffs, operations, and overall output as JSON. [Argument(Format = "--json")] public bool? Json => Get(() => Json); /// The key contains a path to a property in a map or list to set. @@ -508,7 +508,7 @@ public partial class PulumiConfigRefreshSettings : ToolOptions public partial class PulumiConfigRemoveSettings : ToolOptions { /// The key to the key-value pair in the configuration. - [Argument(Format = "{value}", Position = 1)] public string Key => Get(() => Key); + [Argument(Format = "{value}", Position = 1, Secret = false)] public string Key => Get(() => Key); /// The key contains a path to a property in a map or list to set. [Argument(Format = "--path {value}")] public string Path => Get(() => Path); /// Colorize output. Choices are: always, never, raw, auto (default auto). @@ -541,7 +541,7 @@ public partial class PulumiConfigRemoveSettings : ToolOptions public partial class PulumiConfigSetSettings : ToolOptions { /// The key to the key-value pair in the configuration. - [Argument(Format = "{value}", Position = 1)] public string Key => Get(() => Key); + [Argument(Format = "{value}", Position = 1, Secret = false)] public string Key => Get(() => Key); /// The new value for specified configuration key. [Argument(Format = "{value}", Position = 1)] public string Value => Get(() => Value); /// The key contains a path to a property in a map or list to set. diff --git a/source/Nuke.Common/Tools/Pulumi/Pulumi.json b/source/Nuke.Common/Tools/Pulumi/Pulumi.json index 1f6ee1b78..6b0dee21c 100644 --- a/source/Nuke.Common/Tools/Pulumi/Pulumi.json +++ b/source/Nuke.Common/Tools/Pulumi/Pulumi.json @@ -380,6 +380,7 @@ "name": "Key", "type": "string", "format": "{value}", + "secret": false, "position": 1, "help": "The key to the key-value pair in the configuration." }, @@ -421,6 +422,7 @@ "name": "Key", "type": "string", "format": "{value}", + "secret": false, "position": 1, "help": "The key to the key-value pair in the configuration." }, @@ -442,6 +444,7 @@ "name": "Key", "type": "string", "format": "{value}", + "secret": false, "position": 1, "help": "The key to the key-value pair in the configuration." }, diff --git a/source/Nuke.Common/Tools/ReSharper/ReSharperTasks.cs b/source/Nuke.Common/Tools/ReSharper/ReSharperTasks.cs index 068d040a7..5b4a75dbe 100644 --- a/source/Nuke.Common/Tools/ReSharper/ReSharperTasks.cs +++ b/source/Nuke.Common/Tools/ReSharper/ReSharperTasks.cs @@ -17,27 +17,26 @@ partial class ReSharperTasks { public const string ReSharperPluginLatest = "latest"; - protected override ToolOptions PreProcess(ToolOptions options) + protected override T PreProcess(T options) { - var resharperOptions = ((ReSharperSettingsBase)options) - .SetProcessToolPath(GetToolPath()); - if (resharperOptions.Plugins is not { Count: > 0 }) - return resharperOptions; + options = options.SetProcessToolPath(GetToolPath(options)); + if (options is not ReSharperSettingsBase { Plugins.Count: > 0, Plugins: var plugins }) + return options; - var wave = GetWave(resharperOptions).NotNull("wave != null"); + var wave = GetWave().NotNull("wave != null"); var shadowDirectory = NukeBuild.TemporaryDirectory / $"ReSharper-{wave}-{GetHash()}"; - ((AbsolutePath)resharperOptions.ProcessToolPath).Parent.Copy( + ((AbsolutePath)options.ProcessToolPath).Parent.Copy( target: shadowDirectory, policy: ExistsPolicy.MergeAndOverwriteIfNewer); DownloadPlugins(); - return resharperOptions - .SetProcessToolPath(shadowDirectory / Path.GetFileName(resharperOptions.ProcessToolPath)); + return options + .SetProcessToolPath(shadowDirectory / Path.GetFileName(options.ProcessToolPath)); - string GetWave(ReSharperSettingsBase toolSettings) => - Directory.GetParent(toolSettings.ProcessToolPath) + string GetWave() => + Directory.GetParent(options.ProcessToolPath) .DescendantsAndSelf(x => x.Parent) .Select(x => Path.Combine(x.FullName, "jetbrains.resharper.globaltools.nuspec")) .Where(File.Exists) @@ -46,13 +45,13 @@ string GetWave(ReSharperSettingsBase toolSettings) => .SingleOrDefault(); string GetHash() => - resharperOptions.ProcessToolPath - .Concat(resharperOptions.Plugins.Select(x => x.Key + x.Value)) + options.ProcessToolPath + .Concat(plugins.Select(x => x.Key + x.Value)) .OrderBy(x => x).JoinComma() .GetMD5Hash()[..4]; void DownloadPlugins() => - resharperOptions.Plugins + plugins .Select(x => (Plugin: x.Key, Version: x.Value == ReSharperPluginLatest ? null : x.Value)) .ForEach(x => HttpTasks.HttpDownloadFile( $"http://resharper-plugins.jetbrains.com/dotnet/api/v2/curated-feeds/Wave_v{wave}.0/Packages(Id='{x.Plugin}',Version='{x.Version}')/Download", diff --git a/source/Nuke.Common/Tools/SonarScanner/SonarScanner.json b/source/Nuke.Common/Tools/SonarScanner/SonarScanner.json index 64280e027..ca7722a2f 100644 --- a/source/Nuke.Common/Tools/SonarScanner/SonarScanner.json +++ b/source/Nuke.Common/Tools/SonarScanner/SonarScanner.json @@ -218,6 +218,7 @@ "name": "PullRequestKey", "type": "string", "format": "/d:sonar.pullrequest.key={value}", + "secret": false, "help": "Unique identifier of your Pull Request. Must correspond to the key of the Pull Request in your ALM. e.g.: sonar.pullrequest.key=5" }, { @@ -296,6 +297,7 @@ "name": "ClientCertificatePassword", "type": "string", "format": "/d:sonar.clientcert.password={value}", + "secret": true, "help": "Specifies the password for the client certificate used to access SonarQube. Required if a client certificate is used." } ] @@ -331,6 +333,7 @@ "name": "ClientCertificatePassword", "type": "string", "format": "/d:sonar.clientcert.password={value}", + "secret": true, "help": "Specifies the password for the client certificate used to access SonarQube. Required if a client certificate is used." } ] diff --git a/source/Nuke.Common/Tools/StaticWebApps/StaticWebApps.json b/source/Nuke.Common/Tools/StaticWebApps/StaticWebApps.json index ada56f066..8cffe729f 100644 --- a/source/Nuke.Common/Tools/StaticWebApps/StaticWebApps.json +++ b/source/Nuke.Common/Tools/StaticWebApps/StaticWebApps.json @@ -69,6 +69,7 @@ "name": "SslKey", "type": "string", "format": "--ssl-key {value}", + "secret": false, "help": "SSL key (.key) to use for serving HTTPS" }, { diff --git a/source/Nuke.Common/Tools/Unity/UnityTasks.cs b/source/Nuke.Common/Tools/Unity/UnityTasks.cs index e93954c30..84c36610f 100644 --- a/source/Nuke.Common/Tools/Unity/UnityTasks.cs +++ b/source/Nuke.Common/Tools/Unity/UnityTasks.cs @@ -60,9 +60,9 @@ string GetEditorVersionFromProject() } } - protected override ToolOptions PreProcess(ToolOptions options) + protected override T PreProcess(T options) { - var unityOptions = (UnityOptionsBase)options; + var unityOptions = (options as UnityOptionsBase).NotNull(); var logFile = (AbsolutePath)unityOptions.LogFile ?? NukeBuild.TemporaryDirectory / "unity.log"; logFile.DeleteFile(); @@ -74,7 +74,7 @@ protected override ToolOptions PreProcess(ToolOptions options) return options; } - protected override IReadOnlyCollection Run(ToolOptions options = null) + protected override IReadOnlyCollection Run(T options = null) { try { diff --git a/source/Nuke.Tooling.Generator/Generators/DataClassGenerator.cs b/source/Nuke.Tooling.Generator/Generators/DataClassGenerator.cs index 50cc8257f..51604e043 100644 --- a/source/Nuke.Tooling.Generator/Generators/DataClassGenerator.cs +++ b/source/Nuke.Tooling.Generator/Generators/DataClassGenerator.cs @@ -26,8 +26,51 @@ public static void Run(DataClass dataClass, ToolWriter toolWriter) { foreach (var property in dataClass.Properties) { - CheckMissingValue(property); - CheckMissingSecret(property); + CheckMissingValue(); + CheckMissingSecret(); + if (dataClass.Properties.Count > 1) + CheckMissingPosition(); + + void CheckMissingValue() + { + if (property.NoArgument) + return; + + if (property.Format != null && property.Format.Contains("{value}")) + return; + + if (new[] { "int", "bool" }.Contains(property.Type)) + return; + + Log.Warning("Property {ClassName}.{PropertyName} doesn't contain '{{value}}'", property.DataClass.Name, property.Name); + } + + void CheckMissingSecret() + { + if (property.Secret.HasValue) + return; + + if (!property.Name.ContainsOrdinalIgnoreCase("key") && + !property.Name.ContainsOrdinalIgnoreCase("password") && + !property.Name.ContainsOrdinalIgnoreCase("token")) + return; + + Log.Warning("Property {ClassName}.{PropertyName} should have explicit secret definition", property.DataClass.Name, property.Name); + } + + void CheckMissingPosition() + { + if (property.NoArgument) + return; + + if (!property.Format.StartsWith("{")) + return; + + if (property.Position != null) + return; + + Log.Warning("Property {ClassName}.{PropertyName} does not have a position", property.DataClass.Name, property.Name); + } } } @@ -66,33 +109,6 @@ string GetCommandAttribute() } } - private static void CheckMissingValue(Property property) - { - if (property.NoArgument) - return; - - if (property.Format != null && property.Format.Contains("{value}")) - return; - - if (new[] { "int", "bool" }.Contains(property.Type)) - return; - - Log.Warning("Property {ClassName}.{PropertyName} doesn't contain '{{value}}'", property.DataClass.Name, property.Name); - } - - private static void CheckMissingSecret(Property property) - { - if (property.Secret.HasValue) - return; - - if (!property.Name.ContainsOrdinalIgnoreCase("key") && - !property.Name.ContainsOrdinalIgnoreCase("password") && - !property.Name.ContainsOrdinalIgnoreCase("token")) - return; - - Log.Warning("Property {ClassName}.{PropertyName} should have explicit secret definition", property.DataClass.Name, property.Name); - } - private static void WritePropertyDeclaration(DataClassWriter writer, Property property) { if (property.CustomImpl) diff --git a/source/Nuke.Tooling.Tests/ArgumentStringHandlerTest.cs b/source/Nuke.Tooling.Tests/ArgumentStringHandlerTest.cs index 3085f2099..d31a2de03 100644 --- a/source/Nuke.Tooling.Tests/ArgumentStringHandlerTest.cs +++ b/source/Nuke.Tooling.Tests/ArgumentStringHandlerTest.cs @@ -1,4 +1,4 @@ -// Copyright 2023 Maintainers of NUKE. +// Copyright 2023 Maintainers of NUKE. // Distributed under the MIT License. // https://github.com/nuke-build/nuke/blob/master/LICENSE @@ -22,7 +22,8 @@ public void Test() [Fact] public void TestString() { - ArgsToString("start end").Should().Be("start end"); + // If we want two words without quotes, we need to pass them as two arguments + ArgsToString($"{"start"} {"end"}").Should().Be("start end"); ArgsToString("").Should().Be(""); ArgsToString(" ").Should().Be(""); } @@ -61,6 +62,12 @@ public void TestAbsolutePathCollection() ArgsToString($"start {paths:sn} end").Should().Be("start C:\\foo\\bar '/foo bar/foo' end"); } + [Fact] + public void TestSpacedPathOnly() + { + ArgsToString($"{(AbsolutePath)"C:" / "Program Files"}").Should().Be("\"C:\\Program Files\""); + } + [Fact] public void TestFormat() { @@ -82,7 +89,8 @@ public void TestFormat() [Fact] public void TestUnquote() { - ArgsToString($"{"start end"}").Should().Be("start end"); + // If we want two words without quotes, we need to pass them as two arguments + ArgsToString($"{"start"} {"end"}").Should().Be("start end"); ArgsToString($"start {"spaced end"}").Should().Be("start \"spaced end\""); ArgsToString($"{"spaced start"} end").Should().Be("\"spaced start\" end"); ArgsToString($"{"spaced start"} {"spaced end"}").Should().Be("\"spaced start\" \"spaced end\""); diff --git a/source/Nuke.Tooling/ArgumentStringHandler.cs b/source/Nuke.Tooling/ArgumentStringHandler.cs index 6fcc031e2..61f94422d 100644 --- a/source/Nuke.Tooling/ArgumentStringHandler.cs +++ b/source/Nuke.Tooling/ArgumentStringHandler.cs @@ -81,7 +81,7 @@ public void AppendFormatted(IEnumerable paths, int alignmen public string ToStringAndClear() { var value = _builder.ToStringAndClear(); - return value.Length > 1 && value.IndexOf(value: '"', startIndex: 1) == value.Length - 1 + return value.Length > 1 && value.IndexOf(value: '"', startIndex: 1) == value.Length - 1 && value.IndexOf(' ') == -1 ? value.TrimMatchingDoubleQuotes() : value; } diff --git a/source/Nuke.Tooling/ToolTasks.Run.cs b/source/Nuke.Tooling/ToolTasks.Run.cs index 214fa68f2..016f96ce9 100644 --- a/source/Nuke.Tooling/ToolTasks.Run.cs +++ b/source/Nuke.Tooling/ToolTasks.Run.cs @@ -12,7 +12,7 @@ namespace Nuke.Common.Tooling; partial class ToolTasks { - protected virtual partial IReadOnlyCollection Run(ToolOptions options) + protected virtual partial IReadOnlyCollection Run(T options) where T : ToolOptions, new() { options ??= new T(); @@ -39,10 +39,10 @@ protected virtual partial IReadOnlyCollection Run(ToolOptions options return process.Output; } - protected virtual partial (TResult Result, IReadOnlyCollection Output) Run(ToolOptions options) + protected virtual partial (TResult Result, IReadOnlyCollection Output) Run(TOptions options) where TOptions : ToolOptions, new() { - var output = Run(options); + var output = Run(options); try { var result = GetResult(options, output); diff --git a/source/Nuke.Tooling/ToolTasks.cs b/source/Nuke.Tooling/ToolTasks.cs index c39a6eea0..c88b766fe 100644 --- a/source/Nuke.Tooling/ToolTasks.cs +++ b/source/Nuke.Tooling/ToolTasks.cs @@ -15,11 +15,11 @@ public abstract partial class ToolTasks protected internal virtual partial Action GetLogger(ToolOptions options = null); protected virtual partial string GetToolPath(ToolOptions options = null); - protected virtual partial IReadOnlyCollection Run(ToolOptions options = null) where T : ToolOptions, new(); - protected virtual partial (TResult Result, IReadOnlyCollection Output) Run(ToolOptions options = null) where TOptions : ToolOptions, new(); + protected virtual partial IReadOnlyCollection Run(T options = null) where T : ToolOptions, new(); + protected virtual partial (TResult Result, IReadOnlyCollection Output) Run(TOptions options = null) where TOptions : ToolOptions, new(); protected virtual partial Func GetExitHandler(ToolOptions options = null); - protected virtual ToolOptions PreProcess(ToolOptions options) => options; + protected virtual T PreProcess(T options) where T : ToolOptions => options; protected virtual void PostProcess(ToolOptions options) { } protected virtual object GetResult(ToolOptions options, IReadOnlyCollection output) => default;