Model/GenerateProjectErrorReportSettingsModel.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
 
Generate error report job configuration information.
 
.PARAMETER TimeZone
Specify the UTC time offset of current browser. This value will be used to adjust time values when generating the report file.
.PARAMETER ReportFileType
Specify the format of the generated report file.
.PARAMETER IsSelectAll
No description available.
.PARAMETER ProjectIds
No description available.
.PARAMETER Search
No description available.
.PARAMETER TagIds
No description available.
.PARAMETER Statuses
No description available.
.PARAMETER Types
No description available.
.PARAMETER SourceTenantIds
No description available.
.PARAMETER DestinationTenantIds
No description available.
.OUTPUTS
 
GenerateProjectErrorReportSettingsModel<PSCustomObject>
#>


function Initialize-FlyGenerateProjectErrorReportSettingsModel {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int32]]
        ${TimeZone},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${ReportFileType},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsSelectAll},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${ProjectIds},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Search},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${TagIds},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${Statuses},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${Types},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${SourceTenantIds},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${DestinationTenantIds}
    )

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


        $PSO = [PSCustomObject]@{
            "timeZone" = ${TimeZone}
            "reportFileType" = ${ReportFileType}
            "isSelectAll" = ${IsSelectAll}
            "projectIds" = ${ProjectIds}
            "search" = ${Search}
            "tagIds" = ${TagIds}
            "statuses" = ${Statuses}
            "types" = ${Types}
            "sourceTenantIds" = ${SourceTenantIds}
            "destinationTenantIds" = ${DestinationTenantIds}
        }

        return $PSO
    }
}

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

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

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

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in FlyGenerateProjectErrorReportSettingsModel
        $AllProperties = ("timeZone", "reportFileType", "isSelectAll", "projectIds", "search", "tagIds", "statuses", "types", "sourceTenantIds", "destinationTenantIds")
        foreach ($name in $JsonParameters.PsObject.Properties.Name) {
            if (!($AllProperties.Contains($name))) {
                throw "Error! JSON key '$name' not found in the properties: $($AllProperties)"
            }
        }

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

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

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

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "projectIds"))) { #optional property not found
            $ProjectIds = $null
        } else {
            $ProjectIds = $JsonParameters.PSobject.Properties["projectIds"].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 "tagIds"))) { #optional property not found
            $TagIds = $null
        } else {
            $TagIds = $JsonParameters.PSobject.Properties["tagIds"].value
        }

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

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

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

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

        $PSO = [PSCustomObject]@{
            "timeZone" = ${TimeZone}
            "reportFileType" = ${ReportFileType}
            "isSelectAll" = ${IsSelectAll}
            "projectIds" = ${ProjectIds}
            "search" = ${Search}
            "tagIds" = ${TagIds}
            "statuses" = ${Statuses}
            "types" = ${Types}
            "sourceTenantIds" = ${SourceTenantIds}
            "destinationTenantIds" = ${DestinationTenantIds}
        }

        return $PSO
    }

}