Classes/TppPermission.ps1

class TppPermission {

    [bool] $IsAssociateAllowed
    [bool] $IsCreateAllowed
    [bool] $IsDeleteAllowed
    [bool] $IsManagePermissionsAllowed
    [bool] $IsPolicyWriteAllowed
    [bool] $IsPrivateKeyReadAllowed
    [bool] $IsPrivateKeyWriteAllowed
    [bool] $IsReadAllowed
    [bool] $IsRenameAllowed
    [bool] $IsRevokeAllowed
    [bool] $IsViewAllowed
    [bool] $IsWriteAllowed

    TppPermission ([pscustomobject] $InputObject) {
        $this.IsAssociateAllowed = $InputObject.IsAssociateAllowed
        $this.IsCreateAllowed = $InputObject.IsCreateAllowed
        $this.IsDeleteAllowed = $InputObject.IsDeleteAllowed
        $this.IsManagePermissionsAllowed = $InputObject.IsManagePermissionsAllowed
        $this.IsPolicyWriteAllowed = $InputObject.IsPolicyWriteAllowed
        $this.IsPrivateKeyReadAllowed = $InputObject.IsPrivateKeyReadAllowed
        $this.IsPrivateKeyWriteAllowed = $InputObject.IsPrivateKeyWriteAllowed
        $this.IsReadAllowed = $InputObject.IsReadAllowed
        $this.IsRenameAllowed = $InputObject.IsRenameAllowed
        $this.IsRevokeAllowed = $InputObject.IsRevokeAllowed
        $this.IsViewAllowed = $InputObject.IsViewAllowed
        $this.IsWriteAllowed = $InputObject.IsWriteAllowed
    }

    [HashTable] ToHashtable() {

        $hash = @{}
        $propNames = $this | Get-Member | Where-Object { $_.MemberType -eq 'Property' } | Select-Object -ExpandProperty Name

        foreach ($prop in $propNames) {
            if ($this.GetType().GetProperty($prop)) {
                $hash.Add($prop, $this.$prop)
            }
        }

        return $hash
    }
}


# SIG # Begin signature block
# MIIR6AYJKoZIhvcNAQcCoIIR2TCCEdUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUvVt3xrvAN3scKWxEO6TmyTh0
# W+Sggg40MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0B
# AQwFADBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
# VQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVk
# IFJvb3QgRzQwHhcNMjEwNDI5MDAwMDAwWhcNMzYwNDI4MjM1OTU5WjBpMQswCQYD
# VQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lD
# ZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEg
# Q0ExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3XdU5
# WRuxiEL1M4zrPYGXcMW7xIUmMJ+kjmjYXPXrNCQH4UtP03hD9BfXHtr50tVnGlJP
# DqFX/IiZwZHMgQM+TXAkZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXz
# ENOLsvsI8IrgnQnAZaf6mIBJNYc9URnokCF4RS6hnyzhGMIazMXuk0lwQjKP+8bq
# HPNlaJGiTUyCEUhSaN4QvRRXXegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTC
# fMjqGzLmysL0p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEjR0ezoQ9uo6ttmAaD
# G7dqZy3SvUQakhCBj7A7CdfHmzJawv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urO
# kfW+0/tvk2E0XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBeM/Lo6OwKp7AD
# K5GyNnm+960IHnWmZcy740hQ83eRGv7bUKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4
# R+Z1MI3sMJN2FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrcJisB9IlN
# Wdt4z4FKPkBHX8mBUHOFECMhWWCKZFTBzCEa6DgZfGYczXg4RTCZT/9jT0y7qg0I
# U0F8WD1Hs/q27IwyCQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQIMAYB
# Af8CAQAwHQYDVR0OBBYEFGg34Ou2O/hfEYb7/mF7CIhl9E5CMB8GA1UdIwQYMBaA
# FOzX44LScV1kTN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAK
# BggrBgEFBQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9v
# Y3NwLmRpZ2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGln
# aWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4
# oDagNIYyaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJv
# b3RHNC5jcmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcN
# AQEMBQADggIBADojRD2NCHbuj7w6mdNW4AIapfhINPMstuZ0ZveUcrEAyq9sMCcT
# Ep6QRJ9L/Z6jfCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3WqqQz/WT
# auPrINHVUHmImoqKwba9oUgYftzYgBoRGRjNYZmBVvbJ43bnxOQbX0P4PpT/djk9
# ntSZz0rdKOtfJqGVWEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67Np37
# 5SFTWsPK6Wrxoj7bQ7gzyE84FJKZ9d3OVG3ZXQIUH0AzfAPilbLCIXVzUstG2MQ0
# HKKlS43Nb3Y3LIU/Gs4m6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL
# 6TEa/y4ZXDlx4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt2zyknIYf48FWGysj/4+1
# 6oh7cGvmoLr9Oj9FpsToFpFSi0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8
# M4+uKIw8y4+ICw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8ibEH5glwVZsxsDsrF
# hsP2JjMMB0ug0wcCampAMEhLNKhRILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy
# 1lKQ/a+FSCH5Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqGVnhOMIIHfDCC
# BWSgAwIBAgIQBLJATOrR92oJkCA9Y4q6WzANBgkqhkiG9w0BAQsFADBpMQswCQYD
# VQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lD
# ZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEg
# Q0ExMB4XDTIzMDkxMzAwMDAwMFoXDTI0MDkxMjIzNTk1OVowgYMxCzAJBgNVBAYT
# AlVTMQ0wCwYDVQQIEwRVdGFoMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEVMBMG
# A1UEChMMVmVuYWZpLCBJbmMuMR4wHAYDVQQLExVQcm9mZXNzaW9uYWwgU2Vydmlj
# ZXMxFTATBgNVBAMTDFZlbmFmaSwgSW5jLjCCAiIwDQYJKoZIhvcNAQEBBQADggIP
# ADCCAgoCggIBAM9oGtsNDR86KitTacJnHtKtlWZKLDCGuDMOHhYQ2YkpWllsF21i
# gREFRBJ3f5j5ZjjL9o8ARD2gXU81+G6eQOIK9jcKcNh46/Z7HwbrjDVZAgopl3Y6
# my4YslNKGyGJPuRDB9C58J9QLqU247Y+t5KrO2Q3y0Vauo1LRiVXXwygayAI8pnj
# 14ufBtffdSeovKIN7yoYTve7FnIhly25Yq1BTTKWaSt9lKx69kJJSKoUqNbnL00+
# 8fBBVuT9989np4kAg77LBFLFe7w3XOM5ZdoqPgdY+71TonCxvj/CcYY8td7HirJg
# F0sHyA+dbVjt1dknxGRNsX7sUTfWyznV8gffNPInyAMsS5s9+iqu5Gl/y0OnhnlQ
# 8G573QFKFHAimBiuxT2EISdGZ8bVyUSn0FOKy2mSLVbZyWz31xiV9WlyWNdHymUr
# 5xH2Ea3G+qTFRcQsgDKGRFN10oPW0tKHPX4PhU45J3M8lxYzA/ez2VvBnCwF1krp
# G7Lcs0h74dDYd7chslz8svshsTKgMOnpaKdxXBtbKukYvYEjQPqAsw9lX8KCqTyZ
# 6Jiwxq2LgmDP1NVhtoYv84J4Z/y7v3vBSk5CPGUYVQdWH7+FYK8RksdFgSPuFgeg
# cIui41ZkrmrCWdDqG5e4pOfZ5LHmHPPOVOW44Fma1G14X8N+JVK1ZHzJAgMBAAGj
# ggIDMIIB/zAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNVHQ4E
# FgQUqBniOVD9+s9TxaVdFuKGCTUxlSgwPgYDVR0gBDcwNTAzBgZngQwBBAEwKTAn
# BggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMA4GA1UdDwEB
# /wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzCBtQYDVR0fBIGtMIGqMFOgUaBP
# hk1odHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2Rl
# U2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNybDBToFGgT4ZNaHR0cDovL2Ny
# bDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0
# MDk2U0hBMzg0MjAyMUNBMS5jcmwwgZQGCCsGAQUFBwEBBIGHMIGEMCQGCCsGAQUF
# BzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYIKwYBBQUHMAKGUGh0dHA6
# Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWdu
# aW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAkGA1UdEwQCMAAwDQYJKoZIhvcN
# AQELBQADggIBAA1nenGN3FLl18RYTuDvlT0T8TYrbmKKTst64Ly4qOmJ3GH2232S
# kZigWG+/QHunPzbM+it2z5YbPVLl7OlFZVcEYR6X/MNZKNSPZWS42TPIG4L13rYc
# iAd27ww6y18hElF+IgC/1Azcrg47EATk3vu1r8lz62YapSS9JMDupGjBX35vlfs2
# kwa0ms3KOxi5V1baevo1mBB0nc8mnjYGOTeI95ypbHVaOC4cp7sqgvWk8ln8QvSj
# yqUTavbRsZEx8o3ggetWP8gOgutxqQ5n6GbQ9MeOp869a+wBuXP/03foPbCgOK2m
# otkcXJi18KCBBv+Vv+tHCkwFOOBJ1FuHqf65jwQS6Yp2N3IPpNm+VIwSFG2Hm2p0
# VR4mZoArSykGCx3R/MrvS2XPeiOnRpptPAvM7GT08omIPSWnSj5QHZCN7AdXfNut
# 1H7Gus7xxL0it0J7rS8R33Tnf+10cKklsf6F65PI4ILwKNyABhF/0vnEQYxWLZim
# boWVD0EofC24lH7ES7Bv3aJqCicNSVWbm3hTkYAcsrHKiAwCKAKbY8mXqCiWpfjB
# dQ4ZBpwXoVDXWXvquIeN3K+e9wmZeF2cGOcN8t3pHOAIZbPZBP1bzKpMRnx6E7MJ
# mklTNxCbmedRQoNOeM6JGgRIMWeP+fYL41Cn0TblGAvBXw+S3Y9KCNtUMYIDHjCC
# AxoCAQEwfTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x
# QTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQw
# OTYgU0hBMzg0IDIwMjEgQ0ExAhAEskBM6tH3agmQID1jirpbMAkGBSsOAwIaBQCg
# eDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEE
# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
# BDEWBBRtMThJJeII37gKv7gwebo7DakxgTANBgkqhkiG9w0BAQEFAASCAgByF0m6
# wnol6L7yeaoU2cl7nR3Sriu/M2XC3VQiBOE3qCRQkC3Dn+/vR1EmT/mHyqH15+b3
# K4SlUoWkslf7UJgRCwKdKVyW1jHynv6fmtyj3BCfvRpen3XyvkHjAdTYFNZSmjo9
# b3eJIugmSuRHtndZgntrXwnxMXP9bl4qR9KgkukSYxc8fVjjQ89UTa6Zw/Mgw4HQ
# 61sBWnpbRiMms/wb9GjJWpuQPPmOTC0x3W3oNJttLm5D1xExYyybg8QMG0IdW9vU
# sEFok8Uo74E9AsDHdromv07FcXIWLJ2QomQRdtN9oVlAmzZy8j/IMWrIlf/GQm6x
# 1ZcTI9q1p+wRInJUvpMdeEr+AI6ofR3Z58DoQ7d+FH/WOBTGU1y0B8vmvSRJg/LA
# KiqHn/98McjHzr6X44PCFHXgeLM4HusRmqX+5d/tVFes10y2TnBE4fG0cFZqji5b
# d1Bbqlzte7pAfo7mFaKJI/z2YB/2RxTMGbVVkmFQhukKrE/5Fvtny1MLIrFskZ+m
# TULe60ZzxW9/FWijUH/Y2b92raDpGYelraZYRWTdRL3R8l94RyIF99tJ04x6+1sb
# McpcBNFOAKZQybcR31+YM9YED9ZlXaBWN3eAqHBoP68HIG6g5h3rfW41WZlzZSbq
# DdFwHW2ZIC46GUNRndxH/LMMpvbKGQJFaHQTFQ==
# SIG # End signature block