#
# Echo Server API
# Echo Server API
# Version: 0.1.0
# Contact: team@openapitools.org
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS

Test header parameter(s)

.DESCRIPTION

No description available.

.PARAMETER IntegerHeader
No description available.

.PARAMETER BooleanHeader
No description available.

.PARAMETER StringHeader
No description available.

.PARAMETER EnumNonrefStringHeader
No description available.

.PARAMETER EnumRefStringHeader
No description available.

.PARAMETER WithHttpInfo

A switch when turned on will return a hash table of Response, StatusCode and Headers instead of just the Response

.OUTPUTS

String
#>
function Test-HeaderIntegerBooleanStringEnums {
    [CmdletBinding()]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${IntegerHeader},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Boolean]]
        ${BooleanHeader},
        [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${StringHeader},
        [Parameter(Position = 3, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [ValidateSet("success", "failure", "unclassified")]
        [String]
        ${EnumNonrefStringHeader},
        [Parameter(Position = 4, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [PSCustomObject]
        ${EnumRefStringHeader},
        [Switch]
        $WithHttpInfo
    )

    Process {
        'Calling method: Test-HeaderIntegerBooleanStringEnums' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarFormParameters = @{}
        $LocalVarPathParameters = @{}
        $LocalVarCookieParameters = @{}
        $LocalVarBodyParameter = $null

        $Configuration = Get-Configuration
        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('text/plain')

        $LocalVarUri = '/header/integer/boolean/string/enums'

        if ($IntegerHeader) {
            $LocalVarHeaderParameters['integer_header'] = $IntegerHeader
        }

        if ($BooleanHeader) {
            $LocalVarHeaderParameters['boolean_header'] = $BooleanHeader
        }

        if ($StringHeader) {
            $LocalVarHeaderParameters['string_header'] = $StringHeader
        }

        if ($EnumNonrefStringHeader) {
            $LocalVarHeaderParameters['enum_nonref_string_header'] = $EnumNonrefStringHeader
        }

        if ($EnumRefStringHeader) {
            $LocalVarHeaderParameters['enum_ref_string_header'] = $EnumRefStringHeader
        }

        $LocalVarResult = Invoke-ApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -FormParameters $LocalVarFormParameters `
                                -CookieParameters $LocalVarCookieParameters `
                                -ReturnType "String" `
                                -IsBodyNullable $false

        if ($WithHttpInfo.IsPresent) {
            return $LocalVarResult
        } else {
            return $LocalVarResult["Response"]
        }
    }
}

