v2024/src/Tm.V2024/Model/PasswordPolicyV3Dto.ps1

#
# Identity Security Cloud V2024 API
# Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.
# Version: v2024
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS

No summary available.

.DESCRIPTION

No description available.

.PARAMETER Id
The password policy Id.
.PARAMETER Description
Description for current password policy.
.PARAMETER Name
The name of the password policy.
.PARAMETER DateCreated
Date the Password Policy was created.
.PARAMETER LastUpdated
Date the Password Policy was updated.
.PARAMETER FirstExpirationReminder
The number of days before expiration remaninder.
.PARAMETER AccountIdMinWordLength
The minimun length of account Id. By default is equals to -1.
.PARAMETER AccountNameMinWordLength
The minimun length of account name. By default is equals to -1.
.PARAMETER MinAlpha
Maximum alpha. By default is equals to 0.
.PARAMETER MinCharacterTypes
MinCharacterTypes. By default is equals to -1.
.PARAMETER MaxLength
Maximum length of the password.
.PARAMETER MinLength
Minimum length of the password. By default is equals to 0.
.PARAMETER MaxRepeatedChars
Maximum repetition of the same character in the password. By default is equals to -1.
.PARAMETER MinLower
Minimum amount of lower case character in the password. By default is equals to 0.
.PARAMETER MinNumeric
Minimum amount of numeric characters in the password. By default is equals to 0.
.PARAMETER MinSpecial
Minimum amount of special symbols in the password. By default is equals to 0.
.PARAMETER MinUpper
Minimum amount of upper case symbols in the password. By default is equals to 0.
.PARAMETER PasswordExpiration
Number of days before current password expires. By default is equals to 90.
.PARAMETER DefaultPolicy
Defines whether this policy is default or not. Default policy is created automatically when an org is setup. This field is false by default.
.PARAMETER EnablePasswdExpiration
Defines whether this policy is enabled to expire or not. This field is false by default.
.PARAMETER RequireStrongAuthn
Defines whether this policy require strong Auth or not. This field is false by default.
.PARAMETER RequireStrongAuthOffNetwork
Defines whether this policy require strong Auth of network or not. This field is false by default.
.PARAMETER RequireStrongAuthUntrustedGeographies
Defines whether this policy require strong Auth for untrusted geographies. This field is false by default.
.PARAMETER UseAccountAttributes
Defines whether this policy uses account attributes or not. This field is false by default.
.PARAMETER UseDictionary
Defines whether this policy uses dictionary or not. This field is false by default.
.PARAMETER UseIdentityAttributes
Defines whether this policy uses identity attributes or not. This field is false by default.
.PARAMETER ValidateAgainstAccountId
Defines whether this policy validate against account id or not. This field is false by default.
.PARAMETER ValidateAgainstAccountName
Defines whether this policy validate against account name or not. This field is false by default.
.PARAMETER Created
No description available.
.PARAMETER Modified
No description available.
.PARAMETER SourceIds
List of sources IDs managed by this password policy.
.OUTPUTS

PasswordPolicyV3Dto<PSCustomObject>
#>


function Initialize-V2024PasswordPolicyV3Dto {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Id},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Description},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Name},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${DateCreated},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${LastUpdated},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${FirstExpirationReminder},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${AccountIdMinWordLength},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${AccountNameMinWordLength},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MinAlpha},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MinCharacterTypes},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MaxLength},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MinLength},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MaxRepeatedChars},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MinLower},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MinNumeric},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MinSpecial},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MinUpper},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${PasswordExpiration},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${DefaultPolicy} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${EnablePasswdExpiration} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${RequireStrongAuthn} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${RequireStrongAuthOffNetwork} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${RequireStrongAuthUntrustedGeographies} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${UseAccountAttributes} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${UseDictionary} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${UseIdentityAttributes} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${ValidateAgainstAccountId} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${ValidateAgainstAccountName} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Created},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Modified},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${SourceIds}
    )

    Process {
        'Creating PSCustomObject: Tm.V2024 => V2024PasswordPolicyV3Dto' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "id" = ${Id}
            "description" = ${Description}
            "name" = ${Name}
            "dateCreated" = ${DateCreated}
            "lastUpdated" = ${LastUpdated}
            "firstExpirationReminder" = ${FirstExpirationReminder}
            "accountIdMinWordLength" = ${AccountIdMinWordLength}
            "accountNameMinWordLength" = ${AccountNameMinWordLength}
            "minAlpha" = ${MinAlpha}
            "minCharacterTypes" = ${MinCharacterTypes}
            "maxLength" = ${MaxLength}
            "minLength" = ${MinLength}
            "maxRepeatedChars" = ${MaxRepeatedChars}
            "minLower" = ${MinLower}
            "minNumeric" = ${MinNumeric}
            "minSpecial" = ${MinSpecial}
            "minUpper" = ${MinUpper}
            "passwordExpiration" = ${PasswordExpiration}
            "defaultPolicy" = ${DefaultPolicy}
            "enablePasswdExpiration" = ${EnablePasswdExpiration}
            "requireStrongAuthn" = ${RequireStrongAuthn}
            "requireStrongAuthOffNetwork" = ${RequireStrongAuthOffNetwork}
            "requireStrongAuthUntrustedGeographies" = ${RequireStrongAuthUntrustedGeographies}
            "useAccountAttributes" = ${UseAccountAttributes}
            "useDictionary" = ${UseDictionary}
            "useIdentityAttributes" = ${UseIdentityAttributes}
            "validateAgainstAccountId" = ${ValidateAgainstAccountId}
            "validateAgainstAccountName" = ${ValidateAgainstAccountName}
            "created" = ${Created}
            "modified" = ${Modified}
            "sourceIds" = ${SourceIds}
        }

        return $PSO
    }
}

<#
.SYNOPSIS

Convert from JSON to PasswordPolicyV3Dto<PSCustomObject>

.DESCRIPTION

Convert from JSON to PasswordPolicyV3Dto<PSCustomObject>

.PARAMETER Json

Json object

.OUTPUTS

PasswordPolicyV3Dto<PSCustomObject>
#>

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

    Process {
        'Converting JSON to PSCustomObject: Tm.V2024 => V2024PasswordPolicyV3Dto' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in V2024PasswordPolicyV3Dto
        $AllProperties = ("id", "description", "name", "dateCreated", "lastUpdated", "firstExpirationReminder", "accountIdMinWordLength", "accountNameMinWordLength", "minAlpha", "minCharacterTypes", "maxLength", "minLength", "maxRepeatedChars", "minLower", "minNumeric", "minSpecial", "minUpper", "passwordExpiration", "defaultPolicy", "enablePasswdExpiration", "requireStrongAuthn", "requireStrongAuthOffNetwork", "requireStrongAuthUntrustedGeographies", "useAccountAttributes", "useDictionary", "useIdentityAttributes", "validateAgainstAccountId", "validateAgainstAccountName", "created", "modified", "sourceIds")
        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 "description"))) { #optional property not found
            $Description = $null
        } else {
            $Description = $JsonParameters.PSobject.Properties["description"].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 "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 "firstExpirationReminder"))) { #optional property not found
            $FirstExpirationReminder = $null
        } else {
            $FirstExpirationReminder = $JsonParameters.PSobject.Properties["firstExpirationReminder"].value
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $PSO = [PSCustomObject]@{
            "id" = ${Id}
            "description" = ${Description}
            "name" = ${Name}
            "dateCreated" = ${DateCreated}
            "lastUpdated" = ${LastUpdated}
            "firstExpirationReminder" = ${FirstExpirationReminder}
            "accountIdMinWordLength" = ${AccountIdMinWordLength}
            "accountNameMinWordLength" = ${AccountNameMinWordLength}
            "minAlpha" = ${MinAlpha}
            "minCharacterTypes" = ${MinCharacterTypes}
            "maxLength" = ${MaxLength}
            "minLength" = ${MinLength}
            "maxRepeatedChars" = ${MaxRepeatedChars}
            "minLower" = ${MinLower}
            "minNumeric" = ${MinNumeric}
            "minSpecial" = ${MinSpecial}
            "minUpper" = ${MinUpper}
            "passwordExpiration" = ${PasswordExpiration}
            "defaultPolicy" = ${DefaultPolicy}
            "enablePasswdExpiration" = ${EnablePasswdExpiration}
            "requireStrongAuthn" = ${RequireStrongAuthn}
            "requireStrongAuthOffNetwork" = ${RequireStrongAuthOffNetwork}
            "requireStrongAuthUntrustedGeographies" = ${RequireStrongAuthUntrustedGeographies}
            "useAccountAttributes" = ${UseAccountAttributes}
            "useDictionary" = ${UseDictionary}
            "useIdentityAttributes" = ${UseIdentityAttributes}
            "validateAgainstAccountId" = ${ValidateAgainstAccountId}
            "validateAgainstAccountName" = ${ValidateAgainstAccountName}
            "created" = ${Created}
            "modified" = ${Modified}
            "sourceIds" = ${SourceIds}
        }

        return $PSO
    }

}