Model/Entitlementconnection.ps1

#
# Identity Security Cloud API - Entitlement Connections
# 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

Entitlement connection entity returned by patch APIs.

.PARAMETER TenantId
Tenant identifier that owns the connection.
.PARAMETER ConnectionId
Entitlement connection identifier.
.PARAMETER IdentityId
Identity identifier associated with the connection.
.PARAMETER MachineIdentityId
Machine identity identifier when the connection is machine-backed.
.PARAMETER AccountId
Account identifier for the connected source account.
.PARAMETER EntitlementId
Entitlement identifier on the source.
.PARAMETER SourceId
Source identifier that provides the account and entitlement.
.PARAMETER Standalone
Indicates whether the connection is marked as standalone.
.PARAMETER AttributeName
Entitlement attribute name on the source.
.PARAMETER AttributeValue
Entitlement attribute value on the source.
.PARAMETER Type
Connection type classification.
.PARAMETER State
Current lifecycle state of the connection.
.PARAMETER StateChanged
Time the connection state was last updated.
.PARAMETER StateChangedBy
Identifier of the actor that last changed state.
.PARAMETER JitActivation
Time JIT activation occurred.
.PARAMETER JitProvision
Time provisioning completed for JIT activation.
.PARAMETER JitDeactivation
Time JIT deactivation occurred.
.PARAMETER JitDeprovision
Time deprovisioning completed after JIT deactivation.
.PARAMETER JitExpiration
Time when JIT access expires.
.PARAMETER DeleteAfter
Time after which the connection is eligible for deletion.
.PARAMETER Created
Time when the connection was created.
.PARAMETER Modified
Time when the connection was last modified.
.PARAMETER ActorName
Display value for the actor associated with the latest change.
.OUTPUTS

Entitlementconnection<PSCustomObject>
#>


function Initialize-Entitlementconnection {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${TenantId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ConnectionId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${IdentityId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${MachineIdentityId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AccountId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${EntitlementId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${SourceId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${Standalone} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AttributeName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AttributeValue},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("JIT", "STANDING", "NA")]
        [String]
        ${Type},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${State},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${StateChanged},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${StateChangedBy},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${JitActivation},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${JitProvision},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${JitDeactivation},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${JitDeprovision},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${JitExpiration},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${DeleteAfter},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${Created},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${Modified},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ActorName}
    )

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


        $PSO = [PSCustomObject]@{
            "tenantId" = ${TenantId}
            "connectionId" = ${ConnectionId}
            "identityId" = ${IdentityId}
            "machineIdentityId" = ${MachineIdentityId}
            "accountId" = ${AccountId}
            "entitlementId" = ${EntitlementId}
            "sourceId" = ${SourceId}
            "standalone" = ${Standalone}
            "attributeName" = ${AttributeName}
            "attributeValue" = ${AttributeValue}
            "type" = ${Type}
            "state" = ${State}
            "stateChanged" = ${StateChanged}
            "stateChangedBy" = ${StateChangedBy}
            "jitActivation" = ${JitActivation}
            "jitProvision" = ${JitProvision}
            "jitDeactivation" = ${JitDeactivation}
            "jitDeprovision" = ${JitDeprovision}
            "jitExpiration" = ${JitExpiration}
            "deleteAfter" = ${DeleteAfter}
            "created" = ${Created}
            "modified" = ${Modified}
            "actorName" = ${ActorName}
        }

        return $PSO
    }
}

<#
.SYNOPSIS

Convert from JSON to Entitlementconnection<PSCustomObject>

.DESCRIPTION

Convert from JSON to Entitlementconnection<PSCustomObject>

.PARAMETER Json

Json object

.OUTPUTS

Entitlementconnection<PSCustomObject>
#>

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

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

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in Entitlementconnection
        $AllProperties = ("tenantId", "connectionId", "identityId", "machineIdentityId", "accountId", "entitlementId", "sourceId", "standalone", "attributeName", "attributeValue", "type", "state", "stateChanged", "stateChangedBy", "jitActivation", "jitProvision", "jitDeactivation", "jitDeprovision", "jitExpiration", "deleteAfter", "created", "modified", "actorName")
        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 "tenantId"))) { #optional property not found
            $TenantId = $null
        } else {
            $TenantId = $JsonParameters.PSobject.Properties["tenantId"].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 "identityId"))) { #optional property not found
            $IdentityId = $null
        } else {
            $IdentityId = $JsonParameters.PSobject.Properties["identityId"].value
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

        $PSO = [PSCustomObject]@{
            "tenantId" = ${TenantId}
            "connectionId" = ${ConnectionId}
            "identityId" = ${IdentityId}
            "machineIdentityId" = ${MachineIdentityId}
            "accountId" = ${AccountId}
            "entitlementId" = ${EntitlementId}
            "sourceId" = ${SourceId}
            "standalone" = ${Standalone}
            "attributeName" = ${AttributeName}
            "attributeValue" = ${AttributeValue}
            "type" = ${Type}
            "state" = ${State}
            "stateChanged" = ${StateChanged}
            "stateChangedBy" = ${StateChangedBy}
            "jitActivation" = ${JitActivation}
            "jitProvision" = ${JitProvision}
            "jitDeactivation" = ${JitDeactivation}
            "jitDeprovision" = ${JitDeprovision}
            "jitExpiration" = ${JitExpiration}
            "deleteAfter" = ${DeleteAfter}
            "created" = ${Created}
            "modified" = ${Modified}
            "actorName" = ${ActorName}
        }

        return $PSO
    }

}