<?xml version="1.0" encoding="UTF-8"?>


<dsl-extension kind="buildStep" type="dotnet" generateDslJar="true" applicable="params['command'] == 'nuget-push'">
    <class name="DotnetNugetPushStep">
        <description>
            A [dotnet nuget push step](https://github.com/JetBrains/teamcity-dotnet-plugin) to run .NET CLI command
        </description>
    </class>
    <function name="dotnetNugetPush">
        <description>
            Adds a [dotnet nuget push step](https://github.com/JetBrains/teamcity-dotnet-plugin) to run .NET CLI command
            @see DotnetNugetPushStep
        </description>
    </function>
    <init>
        <param name="command" value="nuget-push"/>
    </init>
    <params>
        <param name="paths" dslName="packages" mandatory="true">
            <description>Specify paths to nuget packages. Wildcards are supported.</description>
        </param>
        <param name="nuget.packageSource" dslName="serverUrl" mandatory="true">
            <description>
                Specify the server URL. To use a TeamCity NuGet feed, specify the URL from the NuGet feed project settings page.
            </description>
        </param>
        <param name="secure:nuget.apiKey" dslName="apiKey" mandatory="true">
            <description>
                Specify the API key to access the NuGet packages feed.
                For the built-in TeamCity NuGet server use %teamcity.nuget.feed.api.key%.
            </description>
        </param>
        <param name="nuget.noSymbols" dslName="noSymbols" type="boolean" trueValue="true" falseValue="">
            <description>Do not publish nuget symbol packages</description>
        </param>
        <param name="args">
            <description>Enter additional command line parameters for dotnet nuget push.</description>
        </param>
        <param name="verbosity" dslName="logging" type="Verbosity">
            <description>
                Specify logging verbosity
                @see Verbosity
            </description>
        </param>
        <param name="required.sdk" dslName="sdk">
            <description>.NET SDK versions separated by semicolon to be required on agents.</description>
        </param>
    </params>
    <types>
        <enum name="Verbosity">
            <description>
                Logging verbosity
            </description>
            <option name="Quiet" value="Quiet"/>
            <option name="Minimal" value="Minimal"/>
            <option name="Normal" value="Normal"/>
            <option name="Detailed" value="Detailed"/>
            <option name="Diagnostic" value="Diagnostic"/>
        </enum>
    </types>
    <examples>
        <example>
            <description>
                Runs [`dotnet nuget push`](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-push) command to push and publish specified packages to a specified server
            </description>
            <code>
                dotnetNugetPush {
                    packages = "*.nupkg"
                    serverUrl = "https://nuget.example.com/feed"
                    apiKey = "******"
                }
            </code>
        </example>
    </examples>
</dsl-extension>