Model/RunAnalysisRequest.ps1

#
# Fly SDK API
# No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
# Version: 1.0
# Contact: support@avepoint.com
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER IsSelectAll
A boolean value indicates whether the Select All option is checked. Default to False which means only mappings with ids in MappingIds properties are selected.
.PARAMETER Search
A search criteria. If specified it will be used to filter the mappings in the current project. Default empty.
.PARAMETER MappingIds
Specify a list of mapping ids against which the operation or job will be run. If IsSelectAll is set to True, these mappings will be filtered out instead.
.PARAMETER Stages
A list of Stages which will be used together with other serach conditions to filter mappings.
.PARAMETER StageStatuses
A list of Stage Status which will be used together with other serach conditions to filter mappings.
.PARAMETER Statuses
A list of Mapping Status which will be used together with other serach conditions to filter mappings.
.OUTPUTS
 
RunAnalysisRequest<PSCustomObject>
#>


function Initialize-RunAnalysisRequest {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [Boolean]
        ${IsSelectAll},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Search},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${MappingIds},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${Stages},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${StageStatuses},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${Statuses}
    )

    Process {
        'Creating PSCustomObject: FLY.Client => RunAnalysisRequest' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if (!$IsSelectAll) {
            throw "invalid value for 'IsSelectAll', 'IsSelectAll' cannot be null."
        }


        $PSO = [PSCustomObject]@{
            "isSelectAll" = ${IsSelectAll}
            "search" = ${Search}
            "mappingIds" = ${MappingIds}
            "stages" = ${Stages}
            "stageStatuses" = ${StageStatuses}
            "statuses" = ${Statuses}
        }

        return $PSO
    }
}

<#
.SYNOPSIS
 
Convert from JSON to RunAnalysisRequest<PSCustomObject>
 
.DESCRIPTION
 
Convert from JSON to RunAnalysisRequest<PSCustomObject>
 
.PARAMETER Json
 
Json object
 
.OUTPUTS
 
RunAnalysisRequest<PSCustomObject>
#>

function ConvertFrom-JsonToRunAnalysisRequest {
    Param(
        [AllowEmptyString()]
        [string]$Json
    )

    Process {
        'Converting JSON to PSCustomObject: FLY.Client => RunAnalysisRequest' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in RunAnalysisRequest
        $AllProperties = ("isSelectAll", "search", "mappingIds", "stages", "stageStatuses", "statuses")
        foreach ($name in $JsonParameters.PsObject.Properties.Name) {
            if (!($AllProperties.Contains($name))) {
                throw "Error! JSON key '$name' not found in the properties: $($AllProperties)"
            }
        }

        If ([string]::IsNullOrEmpty($Json) -or $Json -eq "{}") { # empty json
            throw "Error! Empty JSON cannot be serialized due to the required property 'isSelectAll' missing."
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isSelectAll"))) {
            throw "Error! JSON cannot be serialized due to the required property 'isSelectAll' missing."
        } else {
            $IsSelectAll = $JsonParameters.PSobject.Properties["isSelectAll"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "search"))) { #optional property not found
            $Search = $null
        } else {
            $Search = $JsonParameters.PSobject.Properties["search"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "mappingIds"))) { #optional property not found
            $MappingIds = $null
        } else {
            $MappingIds = $JsonParameters.PSobject.Properties["mappingIds"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "stages"))) { #optional property not found
            $Stages = $null
        } else {
            $Stages = $JsonParameters.PSobject.Properties["stages"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "stageStatuses"))) { #optional property not found
            $StageStatuses = $null
        } else {
            $StageStatuses = $JsonParameters.PSobject.Properties["stageStatuses"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "statuses"))) { #optional property not found
            $Statuses = $null
        } else {
            $Statuses = $JsonParameters.PSobject.Properties["statuses"].value
        }

        $PSO = [PSCustomObject]@{
            "isSelectAll" = ${IsSelectAll}
            "search" = ${Search}
            "mappingIds" = ${MappingIds}
            "stages" = ${Stages}
            "stageStatuses" = ${StageStatuses}
            "statuses" = ${Statuses}
        }

        return $PSO
    }

}