cc/src/PSSailpointCC/Model/ListApplications200ResponseInner.ps1

#
# IdentityNow cc (private) APIs
# No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
# Version: 1.0.0
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS

No summary available.

.DESCRIPTION

No description available.

.PARAMETER Id
No description available.
.PARAMETER AppId
No description available.
.PARAMETER ServiceId
No description available.
.PARAMETER ServiceAppId
No description available.
.PARAMETER Name
No description available.
.PARAMETER Description
No description available.
.PARAMETER AppCenterEnabled
No description available.
.PARAMETER ProvisionRequestEnabled
No description available.
.PARAMETER ControlType
No description available.
.PARAMETER Mobile
No description available.
.PARAMETER PrivateApp
No description available.
.PARAMETER ScriptName
No description available.
.PARAMETER Status
No description available.
.PARAMETER Icon
No description available.
.PARAMETER Health
No description available.
.PARAMETER EnableSso
No description available.
.PARAMETER SsoMethod
No description available.
.PARAMETER HasLinks
No description available.
.PARAMETER HasAutomations
No description available.
.PARAMETER StepUpAuthData
No description available.
.PARAMETER StepUpAuthType
No description available.
.PARAMETER UsageAnalytics
No description available.
.PARAMETER UsageCertRequired
No description available.
.PARAMETER UsageCertText
No description available.
.PARAMETER LaunchpadEnabled
No description available.
.PARAMETER PasswordManaged
No description available.
.PARAMETER Owner
No description available.
.PARAMETER DateCreated
No description available.
.PARAMETER LastUpdated
No description available.
.PARAMETER DefaultAccessProfile
No description available.
.PARAMETER Service
No description available.
.PARAMETER SelectedSsoMethod
No description available.
.PARAMETER SupportedSsoMethods
No description available.
.PARAMETER OffNetworkBlockedRoles
No description available.
.PARAMETER SupportedOffNetwork
No description available.
.PARAMETER AccountServiceId
No description available.
.PARAMETER LauncherCount
No description available.
.PARAMETER AccountServiceName
No description available.
.PARAMETER AccountServiceExternalId
No description available.
.PARAMETER AccountServiceMatchAllAccounts
No description available.
.PARAMETER ExternalId
No description available.
.PARAMETER AccountServiceUseForPasswordManagement
No description available.
.PARAMETER AccountServicePolicyId
No description available.
.PARAMETER AccountServicePolicyName
No description available.
.PARAMETER RequireStrongAuthn
No description available.
.PARAMETER AccountServicePolicies
No description available.
.PARAMETER XsdVersion
No description available.
.PARAMETER AppProfiles
No description available.
.PARAMETER PasswordServiceId
No description available.
.PARAMETER AccessProfileIds
No description available.
.OUTPUTS

ListApplications200ResponseInner<PSCustomObject>
#>


function Initialize-CCListApplications200ResponseInner {
    [CmdletBinding()]
    Param (
        [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Id},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AppId},
        [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ServiceId},
        [Parameter(Position = 3, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ServiceAppId},
        [Parameter(Position = 4, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Name},
        [Parameter(Position = 5, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Description},
        [Parameter(Position = 6, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${AppCenterEnabled},
        [Parameter(Position = 7, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${ProvisionRequestEnabled},
        [Parameter(Position = 8, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ControlType},
        [Parameter(Position = 9, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${Mobile},
        [Parameter(Position = 10, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${PrivateApp},
        [Parameter(Position = 11, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ScriptName},
        [Parameter(Position = 12, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Status},
        [Parameter(Position = 13, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Icon},
        [Parameter(Position = 14, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Health},
        [Parameter(Position = 15, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${EnableSso},
        [Parameter(Position = 16, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${SsoMethod},
        [Parameter(Position = 17, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${HasLinks},
        [Parameter(Position = 18, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${HasAutomations},
        [Parameter(Position = 19, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${StepUpAuthData},
        [Parameter(Position = 20, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${StepUpAuthType},
        [Parameter(Position = 21, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${UsageAnalytics},
        [Parameter(Position = 22, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${UsageCertRequired},
        [Parameter(Position = 23, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${UsageCertText},
        [Parameter(Position = 24, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${LaunchpadEnabled},
        [Parameter(Position = 25, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${PasswordManaged},
        [Parameter(Position = 26, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Owner},
        [Parameter(Position = 27, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Decimal]]
        ${DateCreated},
        [Parameter(Position = 28, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Decimal]]
        ${LastUpdated},
        [Parameter(Position = 29, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${DefaultAccessProfile},
        [Parameter(Position = 30, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Service},
        [Parameter(Position = 31, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${SelectedSsoMethod},
        [Parameter(Position = 32, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Decimal]]
        ${SupportedSsoMethods},
        [Parameter(Position = 33, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${OffNetworkBlockedRoles},
        [Parameter(Position = 34, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${SupportedOffNetwork},
        [Parameter(Position = 35, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Decimal]]
        ${AccountServiceId},
        [Parameter(Position = 36, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Decimal]]
        ${LauncherCount},
        [Parameter(Position = 37, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AccountServiceName},
        [Parameter(Position = 38, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AccountServiceExternalId},
        [Parameter(Position = 39, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${AccountServiceMatchAllAccounts},
        [Parameter(Position = 40, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ExternalId},
        [Parameter(Position = 41, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${AccountServiceUseForPasswordManagement},
        [Parameter(Position = 42, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AccountServicePolicyId},
        [Parameter(Position = 43, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AccountServicePolicyName},
        [Parameter(Position = 44, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${RequireStrongAuthn},
        [Parameter(Position = 45, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${AccountServicePolicies},
        [Parameter(Position = 46, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${XsdVersion},
        [Parameter(Position = 47, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${AppProfiles},
        [Parameter(Position = 48, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Decimal]]
        ${PasswordServiceId},
        [Parameter(Position = 49, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${AccessProfileIds}
    )

    Process {
        'Creating PSCustomObject: PSSailpointCC => CCListApplications200ResponseInner' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "id" = ${Id}
            "appId" = ${AppId}
            "serviceId" = ${ServiceId}
            "serviceAppId" = ${ServiceAppId}
            "name" = ${Name}
            "description" = ${Description}
            "appCenterEnabled" = ${AppCenterEnabled}
            "provisionRequestEnabled" = ${ProvisionRequestEnabled}
            "controlType" = ${ControlType}
            "mobile" = ${Mobile}
            "privateApp" = ${PrivateApp}
            "scriptName" = ${ScriptName}
            "status" = ${Status}
            "icon" = ${Icon}
            "health" = ${Health}
            "enableSso" = ${EnableSso}
            "ssoMethod" = ${SsoMethod}
            "hasLinks" = ${HasLinks}
            "hasAutomations" = ${HasAutomations}
            "stepUpAuthData" = ${StepUpAuthData}
            "stepUpAuthType" = ${StepUpAuthType}
            "usageAnalytics" = ${UsageAnalytics}
            "usageCertRequired" = ${UsageCertRequired}
            "usageCertText" = ${UsageCertText}
            "launchpadEnabled" = ${LaunchpadEnabled}
            "passwordManaged" = ${PasswordManaged}
            "owner" = ${Owner}
            "dateCreated" = ${DateCreated}
            "lastUpdated" = ${LastUpdated}
            "defaultAccessProfile" = ${DefaultAccessProfile}
            "service" = ${Service}
            "selectedSsoMethod" = ${SelectedSsoMethod}
            "supportedSsoMethods" = ${SupportedSsoMethods}
            "offNetworkBlockedRoles" = ${OffNetworkBlockedRoles}
            "supportedOffNetwork" = ${SupportedOffNetwork}
            "accountServiceId" = ${AccountServiceId}
            "launcherCount" = ${LauncherCount}
            "accountServiceName" = ${AccountServiceName}
            "accountServiceExternalId" = ${AccountServiceExternalId}
            "accountServiceMatchAllAccounts" = ${AccountServiceMatchAllAccounts}
            "externalId" = ${ExternalId}
            "accountServiceUseForPasswordManagement" = ${AccountServiceUseForPasswordManagement}
            "accountServicePolicyId" = ${AccountServicePolicyId}
            "accountServicePolicyName" = ${AccountServicePolicyName}
            "requireStrongAuthn" = ${RequireStrongAuthn}
            "accountServicePolicies" = ${AccountServicePolicies}
            "xsdVersion" = ${XsdVersion}
            "appProfiles" = ${AppProfiles}
            "passwordServiceId" = ${PasswordServiceId}
            "accessProfileIds" = ${AccessProfileIds}
        }


        return $PSO
    }
}

<#
.SYNOPSIS

Convert from JSON to ListApplications200ResponseInner<PSCustomObject>

.DESCRIPTION

Convert from JSON to ListApplications200ResponseInner<PSCustomObject>

.PARAMETER Json

Json object

.OUTPUTS

ListApplications200ResponseInner<PSCustomObject>
#>

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

    Process {
        'Converting JSON to PSCustomObject: PSSailpointCC => CCListApplications200ResponseInner' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in CCListApplications200ResponseInner
        $AllProperties = ("id", "appId", "serviceId", "serviceAppId", "name", "description", "appCenterEnabled", "provisionRequestEnabled", "controlType", "mobile", "privateApp", "scriptName", "status", "icon", "health", "enableSso", "ssoMethod", "hasLinks", "hasAutomations", "stepUpAuthData", "stepUpAuthType", "usageAnalytics", "usageCertRequired", "usageCertText", "launchpadEnabled", "passwordManaged", "owner", "dateCreated", "lastUpdated", "defaultAccessProfile", "service", "selectedSsoMethod", "supportedSsoMethods", "offNetworkBlockedRoles", "supportedOffNetwork", "accountServiceId", "launcherCount", "accountServiceName", "accountServiceExternalId", "accountServiceMatchAllAccounts", "externalId", "accountServiceUseForPasswordManagement", "accountServicePolicyId", "accountServicePolicyName", "requireStrongAuthn", "accountServicePolicies", "xsdVersion", "appProfiles", "passwordServiceId", "accessProfileIds")
        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 "id"))) { #optional property not found
            $Id = $null
        } else {
            $Id = $JsonParameters.PSobject.Properties["id"].value
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $PSO = [PSCustomObject]@{
            "id" = ${Id}
            "appId" = ${AppId}
            "serviceId" = ${ServiceId}
            "serviceAppId" = ${ServiceAppId}
            "name" = ${Name}
            "description" = ${Description}
            "appCenterEnabled" = ${AppCenterEnabled}
            "provisionRequestEnabled" = ${ProvisionRequestEnabled}
            "controlType" = ${ControlType}
            "mobile" = ${Mobile}
            "privateApp" = ${PrivateApp}
            "scriptName" = ${ScriptName}
            "status" = ${Status}
            "icon" = ${Icon}
            "health" = ${Health}
            "enableSso" = ${EnableSso}
            "ssoMethod" = ${SsoMethod}
            "hasLinks" = ${HasLinks}
            "hasAutomations" = ${HasAutomations}
            "stepUpAuthData" = ${StepUpAuthData}
            "stepUpAuthType" = ${StepUpAuthType}
            "usageAnalytics" = ${UsageAnalytics}
            "usageCertRequired" = ${UsageCertRequired}
            "usageCertText" = ${UsageCertText}
            "launchpadEnabled" = ${LaunchpadEnabled}
            "passwordManaged" = ${PasswordManaged}
            "owner" = ${Owner}
            "dateCreated" = ${DateCreated}
            "lastUpdated" = ${LastUpdated}
            "defaultAccessProfile" = ${DefaultAccessProfile}
            "service" = ${Service}
            "selectedSsoMethod" = ${SelectedSsoMethod}
            "supportedSsoMethods" = ${SupportedSsoMethods}
            "offNetworkBlockedRoles" = ${OffNetworkBlockedRoles}
            "supportedOffNetwork" = ${SupportedOffNetwork}
            "accountServiceId" = ${AccountServiceId}
            "launcherCount" = ${LauncherCount}
            "accountServiceName" = ${AccountServiceName}
            "accountServiceExternalId" = ${AccountServiceExternalId}
            "accountServiceMatchAllAccounts" = ${AccountServiceMatchAllAccounts}
            "externalId" = ${ExternalId}
            "accountServiceUseForPasswordManagement" = ${AccountServiceUseForPasswordManagement}
            "accountServicePolicyId" = ${AccountServicePolicyId}
            "accountServicePolicyName" = ${AccountServicePolicyName}
            "requireStrongAuthn" = ${RequireStrongAuthn}
            "accountServicePolicies" = ${AccountServicePolicies}
            "xsdVersion" = ${XsdVersion}
            "appProfiles" = ${AppProfiles}
            "passwordServiceId" = ${PasswordServiceId}
            "accessProfileIds" = ${AccessProfileIds}
        }

        return $PSO
    }

}