jit-activations/src/PSSailpoint.JitActivations/Model/Jitactivationhistorydocument.ps1

#
# Identity Security Cloud API - JIT Activations
# 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: v1
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS

No summary available.

.DESCRIPTION

A single JIT activation history record.

.PARAMETER Id
Unique identifier of the activation record.
.PARAMETER TenantId
Tenant (pod/org) identifier.
.PARAMETER IdentityId
Identifier of the identity that requested activation.
.PARAMETER AccountId
Identifier of the account on which the entitlement was provisioned.
.PARAMETER EntitlementId
Identifier of the entitlement that was activated.
.PARAMETER SourceId
Identifier of the source that owns the entitlement.
.PARAMETER ConnectionId
Identifier of the entitlement connection used for this activation.
.PARAMETER IdentityName
Display name of the identity.
.PARAMETER EntitlementName
Display name of the entitlement.
.PARAMETER SourceDisplayName
Display name of the source.
.PARAMETER PolicyDisplayNames
Display names of the JIT policies that matched this activation.
.PARAMETER Status
Current or final status of the activation workflow. Possible values: ACTIVATING, AWAITING_FRICTIONS, PROVISIONING, PROVISIONED, DEPROVISIONING, COMPLETE, CANCELLED, ERROR, TIMED_OUT, REVOKED.
.PARAMETER VarError
Error message if the activation ended in an ERROR state.
.PARAMETER PolicyFrictionOutcome
Outcome of policy friction evaluation (e.g. SUCCESS_ENFORCED, BYPASSED).
.PARAMETER PolicyMatchDetails
UUIDs of the policy records that matched this activation.
.PARAMETER ActivationInitiated
Timestamp when the activation was initiated.
.PARAMETER ProvisionStart
Timestamp when provisioning started.
.PARAMETER ProvisionCompleted
Timestamp when provisioning completed.
.PARAMETER DeprovisionStart
Timestamp when deprovisioning started.
.PARAMETER DeprovisionComplete
Timestamp when deprovisioning completed.
.PARAMETER ProvisionDurationMins
Duration of the provisioning phase in minutes.
.PARAMETER DeprovisionDurationMins
Duration of the deprovisioning phase in minutes.
.PARAMETER Summary
No description available.
.PARAMETER Frictions
Individual friction items presented to the user during activation (e.g. TICKET, JUSTIFICATION, REAUTH). Null when no friction was evaluated.
.PARAMETER ActivationDetails
Additional structured metadata about the activation. Shape is subject to change.
.PARAMETER ActivationDuration
Duration breakdown of the full activation lifecycle. Shape is subject to change.
.PARAMETER ProvisioningDetails
Low-level provisioning operation detail. Shape is subject to change.
.OUTPUTS

Jitactivationhistorydocument<PSCustomObject>
#>


function Initialize-Jitactivationhistorydocument {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Id},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${TenantId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${IdentityId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AccountId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${EntitlementId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${SourceId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ConnectionId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${IdentityName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${EntitlementName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${SourceDisplayName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${PolicyDisplayNames},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Status},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${VarError},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${PolicyFrictionOutcome},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${PolicyMatchDetails},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${ActivationInitiated},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${ProvisionStart},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${ProvisionCompleted},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${DeprovisionStart},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${DeprovisionComplete},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Double]]
        ${ProvisionDurationMins},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Double]]
        ${DeprovisionDurationMins},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Summary},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${Frictions},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Collections.Hashtable]
        ${ActivationDetails},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Collections.Hashtable]
        ${ActivationDuration},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Collections.Hashtable]
        ${ProvisioningDetails}
    )

    Process {
        'Creating PSCustomObject: PSSailpoint.JitActivations => Jitactivationhistorydocument' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "id" = ${Id}
            "tenantId" = ${TenantId}
            "identityId" = ${IdentityId}
            "accountId" = ${AccountId}
            "entitlementId" = ${EntitlementId}
            "sourceId" = ${SourceId}
            "connectionId" = ${ConnectionId}
            "identityName" = ${IdentityName}
            "entitlementName" = ${EntitlementName}
            "sourceDisplayName" = ${SourceDisplayName}
            "policyDisplayNames" = ${PolicyDisplayNames}
            "status" = ${Status}
            "error" = ${VarError}
            "policyFrictionOutcome" = ${PolicyFrictionOutcome}
            "policyMatchDetails" = ${PolicyMatchDetails}
            "activationInitiated" = ${ActivationInitiated}
            "provisionStart" = ${ProvisionStart}
            "provisionCompleted" = ${ProvisionCompleted}
            "deprovisionStart" = ${DeprovisionStart}
            "deprovisionComplete" = ${DeprovisionComplete}
            "provisionDurationMins" = ${ProvisionDurationMins}
            "deprovisionDurationMins" = ${DeprovisionDurationMins}
            "summary" = ${Summary}
            "frictions" = ${Frictions}
            "activationDetails" = ${ActivationDetails}
            "activationDuration" = ${ActivationDuration}
            "provisioningDetails" = ${ProvisioningDetails}
        }

        return $PSO
    }
}

<#
.SYNOPSIS

Convert from JSON to Jitactivationhistorydocument<PSCustomObject>

.DESCRIPTION

Convert from JSON to Jitactivationhistorydocument<PSCustomObject>

.PARAMETER Json

Json object

.OUTPUTS

Jitactivationhistorydocument<PSCustomObject>
#>

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

    Process {
        'Converting JSON to PSCustomObject: PSSailpoint.JitActivations => Jitactivationhistorydocument' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in Jitactivationhistorydocument
        $AllProperties = ("id", "tenantId", "identityId", "accountId", "entitlementId", "sourceId", "connectionId", "identityName", "entitlementName", "sourceDisplayName", "policyDisplayNames", "status", "error", "policyFrictionOutcome", "policyMatchDetails", "activationInitiated", "provisionStart", "provisionCompleted", "deprovisionStart", "deprovisionComplete", "provisionDurationMins", "deprovisionDurationMins", "summary", "frictions", "activationDetails", "activationDuration", "provisioningDetails")
        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 "tenantId"))) { #optional property not found
            $TenantId = $null
        } else {
            $TenantId = $JsonParameters.PSobject.Properties["tenantId"].value
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $PSO = [PSCustomObject]@{
            "id" = ${Id}
            "tenantId" = ${TenantId}
            "identityId" = ${IdentityId}
            "accountId" = ${AccountId}
            "entitlementId" = ${EntitlementId}
            "sourceId" = ${SourceId}
            "connectionId" = ${ConnectionId}
            "identityName" = ${IdentityName}
            "entitlementName" = ${EntitlementName}
            "sourceDisplayName" = ${SourceDisplayName}
            "policyDisplayNames" = ${PolicyDisplayNames}
            "status" = ${Status}
            "error" = ${VarError}
            "policyFrictionOutcome" = ${PolicyFrictionOutcome}
            "policyMatchDetails" = ${PolicyMatchDetails}
            "activationInitiated" = ${ActivationInitiated}
            "provisionStart" = ${ProvisionStart}
            "provisionCompleted" = ${ProvisionCompleted}
            "deprovisionStart" = ${DeprovisionStart}
            "deprovisionComplete" = ${DeprovisionComplete}
            "provisionDurationMins" = ${ProvisionDurationMins}
            "deprovisionDurationMins" = ${DeprovisionDurationMins}
            "summary" = ${Summary}
            "frictions" = ${Frictions}
            "activationDetails" = ${ActivationDetails}
            "activationDuration" = ${ActivationDuration}
            "provisioningDetails" = ${ProvisioningDetails}
        }

        return $PSO
    }

}