VaporShell.ACMPCA.Classes.ps1

using namespace System
using namespace System.Collections
using namespace System.Collections.Generic
using namespace System.IO
using namespace System.Management.Automation
[CmdletBinding()]
Param()

Write-Verbose "Importing class 'ACMPCACertificateExtensions'"

class ACMPCACertificateExtensions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateExtensions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extensions.html'

    hidden [object] $_certificatePolicies
    hidden [object] $_extendedKeyUsage
    hidden [object] $_keyUsage
    hidden [object] $_subjectAlternativeNames
    hidden [object] $_customExtensions

    [ACMPCACertificatePolicyInformation[]] $CertificatePolicies
    [ACMPCACertificateExtendedKeyUsage[]] $ExtendedKeyUsage
    [ACMPCACertificateKeyUsage] $KeyUsage
    [ACMPCACertificateGeneralName[]] $SubjectAlternativeNames
    [ACMPCACertificateCustomExtension[]] $CustomExtensions

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificatePolicies -Value {
            $this._certificatePolicies
        } -SecondValue {
            param([ValidateType(([ACMPCACertificatePolicyInformation], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._certificatePolicies = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExtendedKeyUsage -Value {
            $this._extendedKeyUsage
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateExtendedKeyUsage], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._extendedKeyUsage = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyUsage -Value {
            $this._keyUsage
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateKeyUsage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyUsage = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubjectAlternativeNames -Value {
            $this._subjectAlternativeNames
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateGeneralName], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._subjectAlternativeNames = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomExtensions -Value {
            $this._customExtensions
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateCustomExtension], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._customExtensions = $value
        }
    }

    ACMPCACertificateExtensions() : base() {}
    ACMPCACertificateExtensions([IDictionary] $props) : base($props) {}
    ACMPCACertificateExtensions([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateSubject'"

class ACMPCACertificateSubject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateSubject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html'

    hidden [object] $_country
    hidden [object] $_organization
    hidden [object] $_organizationalUnit
    hidden [object] $_distinguishedNameQualifier
    hidden [object] $_state
    hidden [object] $_commonName
    hidden [object] $_serialNumber
    hidden [object] $_locality
    hidden [object] $_title
    hidden [object] $_surname
    hidden [object] $_givenName
    hidden [object] $_initials
    hidden [object] $_pseudonym
    hidden [object] $_generationQualifier
    hidden [object] $_customAttributes

    [string] $Country
    [string] $Organization
    [string] $OrganizationalUnit
    [string] $DistinguishedNameQualifier
    [string] $State
    [string] $CommonName
    [string] $SerialNumber
    [string] $Locality
    [string] $Title
    [string] $Surname
    [string] $GivenName
    [string] $Initials
    [string] $Pseudonym
    [string] $GenerationQualifier
    [ACMPCACertificateCustomAttribute[]] $CustomAttributes

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Country -Value {
            $this._country
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._country = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Organization -Value {
            $this._organization
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._organization = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OrganizationalUnit -Value {
            $this._organizationalUnit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._organizationalUnit = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DistinguishedNameQualifier -Value {
            $this._distinguishedNameQualifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._distinguishedNameQualifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name State -Value {
            $this._state
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._state = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CommonName -Value {
            $this._commonName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._commonName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SerialNumber -Value {
            $this._serialNumber
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serialNumber = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Locality -Value {
            $this._locality
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._locality = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Title -Value {
            $this._title
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._title = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Surname -Value {
            $this._surname
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._surname = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GivenName -Value {
            $this._givenName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._givenName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Initials -Value {
            $this._initials
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._initials = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Pseudonym -Value {
            $this._pseudonym
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pseudonym = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GenerationQualifier -Value {
            $this._generationQualifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._generationQualifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomAttributes -Value {
            $this._customAttributes
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateCustomAttribute], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._customAttributes = $value
        }
    }

    ACMPCACertificateSubject() : base() {}
    ACMPCACertificateSubject([IDictionary] $props) : base($props) {}
    ACMPCACertificateSubject([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityRevocationConfiguration'"

class ACMPCACertificateAuthorityRevocationConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityRevocationConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-revocationconfiguration.html'

    hidden [object] $_crlConfiguration
    hidden [object] $_ocspConfiguration

    [ACMPCACertificateAuthorityCrlConfiguration] $CrlConfiguration
    [ACMPCACertificateAuthorityOcspConfiguration] $OcspConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CrlConfiguration -Value {
            $this._crlConfiguration
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityCrlConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._crlConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OcspConfiguration -Value {
            $this._ocspConfiguration
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityOcspConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ocspConfiguration = $value
        }
    }

    ACMPCACertificateAuthorityRevocationConfiguration() : base() {}
    ACMPCACertificateAuthorityRevocationConfiguration([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityRevocationConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificatePolicyInformation'"

class ACMPCACertificatePolicyInformation : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificatePolicyInformation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyinformation.html'

    hidden [object] $_certPolicyId
    hidden [object] $_policyQualifiers

    [string] $CertPolicyId
    [ACMPCACertificatePolicyQualifierInfo[]] $PolicyQualifiers

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertPolicyId -Value {
            $this._certPolicyId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._certPolicyId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PolicyQualifiers -Value {
            $this._policyQualifiers
        } -SecondValue {
            param([ValidateType(([ACMPCACertificatePolicyQualifierInfo], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._policyQualifiers = $value
        }
    }

    ACMPCACertificatePolicyInformation() : base() {}
    ACMPCACertificatePolicyInformation([IDictionary] $props) : base($props) {}
    ACMPCACertificatePolicyInformation([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityKeyUsage'"

class ACMPCACertificateAuthorityKeyUsage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityKeyUsage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html'

    hidden [object] $_digitalSignature
    hidden [object] $_nonRepudiation
    hidden [object] $_keyEncipherment
    hidden [object] $_dataEncipherment
    hidden [object] $_keyAgreement
    hidden [object] $_keyCertSign
    hidden [object] $_cRLSign
    hidden [object] $_encipherOnly
    hidden [object] $_decipherOnly

    [bool] $DigitalSignature
    [bool] $NonRepudiation
    [bool] $KeyEncipherment
    [bool] $DataEncipherment
    [bool] $KeyAgreement
    [bool] $KeyCertSign
    [bool] $CRLSign
    [bool] $EncipherOnly
    [bool] $DecipherOnly

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DigitalSignature -Value {
            $this._digitalSignature
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._digitalSignature = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NonRepudiation -Value {
            $this._nonRepudiation
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._nonRepudiation = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyEncipherment -Value {
            $this._keyEncipherment
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyEncipherment = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataEncipherment -Value {
            $this._dataEncipherment
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataEncipherment = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyAgreement -Value {
            $this._keyAgreement
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyAgreement = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyCertSign -Value {
            $this._keyCertSign
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyCertSign = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CRLSign -Value {
            $this._cRLSign
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cRLSign = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncipherOnly -Value {
            $this._encipherOnly
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encipherOnly = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DecipherOnly -Value {
            $this._decipherOnly
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._decipherOnly = $value
        }
    }

    ACMPCACertificateAuthorityKeyUsage() : base() {}
    ACMPCACertificateAuthorityKeyUsage([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityKeyUsage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityCsrExtensions'"

class ACMPCACertificateAuthorityCsrExtensions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityCsrExtensions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-csrextensions.html'

    hidden [object] $_keyUsage
    hidden [object] $_subjectInformationAccess

    [ACMPCACertificateAuthorityKeyUsage] $KeyUsage
    [ACMPCACertificateAuthorityAccessDescription[]] $SubjectInformationAccess

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyUsage -Value {
            $this._keyUsage
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityKeyUsage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyUsage = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubjectInformationAccess -Value {
            $this._subjectInformationAccess
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityAccessDescription], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._subjectInformationAccess = $value
        }
    }

    ACMPCACertificateAuthorityCsrExtensions() : base() {}
    ACMPCACertificateAuthorityCsrExtensions([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityCsrExtensions([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityAccessDescription'"

class ACMPCACertificateAuthorityAccessDescription : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityAccessDescription'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html'

    hidden [object] $_accessMethod
    hidden [object] $_accessLocation

    [ACMPCACertificateAuthorityAccessMethod] $AccessMethod
    [ACMPCACertificateAuthorityGeneralName] $AccessLocation

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessMethod -Value {
            $this._accessMethod
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityAccessMethod], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accessMethod = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessLocation -Value {
            $this._accessLocation
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityGeneralName], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accessLocation = $value
        }
    }

    ACMPCACertificateAuthorityAccessDescription() : base() {}
    ACMPCACertificateAuthorityAccessDescription([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityAccessDescription([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificatePolicyQualifierInfo'"

class ACMPCACertificatePolicyQualifierInfo : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificatePolicyQualifierInfo'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyqualifierinfo.html'

    hidden [object] $_policyQualifierId
    hidden [object] $_qualifier

    [string] $PolicyQualifierId
    [ACMPCACertificateQualifier] $Qualifier

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name PolicyQualifierId -Value {
            $this._policyQualifierId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._policyQualifierId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Qualifier -Value {
            $this._qualifier
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateQualifier], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._qualifier = $value
        }
    }

    ACMPCACertificatePolicyQualifierInfo() : base() {}
    ACMPCACertificatePolicyQualifierInfo([IDictionary] $props) : base($props) {}
    ACMPCACertificatePolicyQualifierInfo([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateQualifier'"

class ACMPCACertificateQualifier : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateQualifier'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-qualifier.html'

    hidden [object] $_cpsUri

    [string] $CpsUri

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CpsUri -Value {
            $this._cpsUri
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cpsUri = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateQualifier() : base() {}
    ACMPCACertificateQualifier([IDictionary] $props) : base($props) {}
    ACMPCACertificateQualifier([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateGeneralName'"

class ACMPCACertificateGeneralName : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateGeneralName'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html'

    hidden [object] $_otherName
    hidden [object] $_rfc822Name
    hidden [object] $_dnsName
    hidden [object] $_directoryName
    hidden [object] $_ediPartyName
    hidden [object] $_uniformResourceIdentifier
    hidden [object] $_ipAddress
    hidden [object] $_registeredId

    [ACMPCACertificateOtherName] $OtherName
    [string] $Rfc822Name
    [string] $DnsName
    [ACMPCACertificateSubject] $DirectoryName
    [ACMPCACertificateEdiPartyName] $EdiPartyName
    [string] $UniformResourceIdentifier
    [string] $IpAddress
    [string] $RegisteredId

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name OtherName -Value {
            $this._otherName
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateOtherName], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._otherName = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Rfc822Name -Value {
            $this._rfc822Name
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rfc822Name = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DnsName -Value {
            $this._dnsName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dnsName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DirectoryName -Value {
            $this._directoryName
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateSubject], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._directoryName = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EdiPartyName -Value {
            $this._ediPartyName
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateEdiPartyName], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ediPartyName = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UniformResourceIdentifier -Value {
            $this._uniformResourceIdentifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._uniformResourceIdentifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IpAddress -Value {
            $this._ipAddress
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ipAddress = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RegisteredId -Value {
            $this._registeredId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._registeredId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateGeneralName() : base() {}
    ACMPCACertificateGeneralName([IDictionary] $props) : base($props) {}
    ACMPCACertificateGeneralName([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityCustomAttribute'"

class ACMPCACertificateAuthorityCustomAttribute : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityCustomAttribute'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-customattribute.html'

    hidden [object] $_objectIdentifier
    hidden [object] $_value

    [string] $ObjectIdentifier
    [string] $Value

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ObjectIdentifier -Value {
            $this._objectIdentifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._objectIdentifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateAuthorityCustomAttribute() : base() {}
    ACMPCACertificateAuthorityCustomAttribute([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityCustomAttribute([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityOcspConfiguration'"

class ACMPCACertificateAuthorityOcspConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityOcspConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-ocspconfiguration.html'

    hidden [object] $_enabled
    hidden [object] $_ocspCustomCname

    [bool] $Enabled
    [string] $OcspCustomCname

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this._enabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OcspCustomCname -Value {
            $this._ocspCustomCname
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ocspCustomCname = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateAuthorityOcspConfiguration() : base() {}
    ACMPCACertificateAuthorityOcspConfiguration([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityOcspConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateApiPassthrough'"

class ACMPCACertificateApiPassthrough : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateApiPassthrough'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-apipassthrough.html'

    hidden [object] $_extensions
    hidden [object] $_subject

    [ACMPCACertificateExtensions] $Extensions
    [ACMPCACertificateSubject] $Subject

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Extensions -Value {
            $this._extensions
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateExtensions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._extensions = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Subject -Value {
            $this._subject
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateSubject], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._subject = $value
        }
    }

    ACMPCACertificateApiPassthrough() : base() {}
    ACMPCACertificateApiPassthrough([IDictionary] $props) : base($props) {}
    ACMPCACertificateApiPassthrough([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityEdiPartyName'"

class ACMPCACertificateAuthorityEdiPartyName : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityEdiPartyName'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-edipartyname.html'

    hidden [object] $_partyName
    hidden [object] $_nameAssigner

    [string] $PartyName
    [string] $NameAssigner

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name PartyName -Value {
            $this._partyName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._partyName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NameAssigner -Value {
            $this._nameAssigner
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._nameAssigner = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateAuthorityEdiPartyName() : base() {}
    ACMPCACertificateAuthorityEdiPartyName([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityEdiPartyName([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateEdiPartyName'"

class ACMPCACertificateEdiPartyName : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateEdiPartyName'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-edipartyname.html'

    hidden [object] $_partyName
    hidden [object] $_nameAssigner

    [string] $PartyName
    [string] $NameAssigner

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name PartyName -Value {
            $this._partyName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._partyName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NameAssigner -Value {
            $this._nameAssigner
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._nameAssigner = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateEdiPartyName() : base() {}
    ACMPCACertificateEdiPartyName([IDictionary] $props) : base($props) {}
    ACMPCACertificateEdiPartyName([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateCustomExtension'"

class ACMPCACertificateCustomExtension : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateCustomExtension'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-customextension.html'

    hidden [object] $_critical
    hidden [object] $_objectIdentifier
    hidden [object] $_value

    [bool] $Critical
    [string] $ObjectIdentifier
    [string] $Value

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Critical -Value {
            $this._critical
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._critical = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ObjectIdentifier -Value {
            $this._objectIdentifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._objectIdentifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateCustomExtension() : base() {}
    ACMPCACertificateCustomExtension([IDictionary] $props) : base($props) {}
    ACMPCACertificateCustomExtension([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthoritySubject'"

class ACMPCACertificateAuthoritySubject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthoritySubject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html'

    hidden [object] $_country
    hidden [object] $_organization
    hidden [object] $_organizationalUnit
    hidden [object] $_distinguishedNameQualifier
    hidden [object] $_state
    hidden [object] $_commonName
    hidden [object] $_serialNumber
    hidden [object] $_locality
    hidden [object] $_title
    hidden [object] $_surname
    hidden [object] $_givenName
    hidden [object] $_initials
    hidden [object] $_pseudonym
    hidden [object] $_generationQualifier
    hidden [object] $_customAttributes

    [string] $Country
    [string] $Organization
    [string] $OrganizationalUnit
    [string] $DistinguishedNameQualifier
    [string] $State
    [string] $CommonName
    [string] $SerialNumber
    [string] $Locality
    [string] $Title
    [string] $Surname
    [string] $GivenName
    [string] $Initials
    [string] $Pseudonym
    [string] $GenerationQualifier
    [ACMPCACertificateAuthorityCustomAttribute[]] $CustomAttributes

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Country -Value {
            $this._country
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._country = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Organization -Value {
            $this._organization
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._organization = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OrganizationalUnit -Value {
            $this._organizationalUnit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._organizationalUnit = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DistinguishedNameQualifier -Value {
            $this._distinguishedNameQualifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._distinguishedNameQualifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name State -Value {
            $this._state
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._state = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CommonName -Value {
            $this._commonName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._commonName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SerialNumber -Value {
            $this._serialNumber
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serialNumber = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Locality -Value {
            $this._locality
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._locality = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Title -Value {
            $this._title
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._title = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Surname -Value {
            $this._surname
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._surname = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GivenName -Value {
            $this._givenName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._givenName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Initials -Value {
            $this._initials
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._initials = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Pseudonym -Value {
            $this._pseudonym
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pseudonym = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GenerationQualifier -Value {
            $this._generationQualifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._generationQualifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomAttributes -Value {
            $this._customAttributes
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityCustomAttribute], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._customAttributes = $value
        }
    }

    ACMPCACertificateAuthoritySubject() : base() {}
    ACMPCACertificateAuthoritySubject([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthoritySubject([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateOtherName'"

class ACMPCACertificateOtherName : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateOtherName'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-othername.html'

    hidden [object] $_typeId
    hidden [object] $_value

    [string] $TypeId
    [string] $Value

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TypeId -Value {
            $this._typeId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._typeId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateOtherName() : base() {}
    ACMPCACertificateOtherName([IDictionary] $props) : base($props) {}
    ACMPCACertificateOtherName([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateCustomAttribute'"

class ACMPCACertificateCustomAttribute : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateCustomAttribute'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-customattribute.html'

    hidden [object] $_objectIdentifier
    hidden [object] $_value

    [string] $ObjectIdentifier
    [string] $Value

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ObjectIdentifier -Value {
            $this._objectIdentifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._objectIdentifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateCustomAttribute() : base() {}
    ACMPCACertificateCustomAttribute([IDictionary] $props) : base($props) {}
    ACMPCACertificateCustomAttribute([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityAccessMethod'"

class ACMPCACertificateAuthorityAccessMethod : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityAccessMethod'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessmethod.html'

    hidden [object] $_customObjectIdentifier
    hidden [object] $_accessMethodType

    [string] $CustomObjectIdentifier
    [string] $AccessMethodType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomObjectIdentifier -Value {
            $this._customObjectIdentifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._customObjectIdentifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessMethodType -Value {
            $this._accessMethodType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accessMethodType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateAuthorityAccessMethod() : base() {}
    ACMPCACertificateAuthorityAccessMethod([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityAccessMethod([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateValidity'"

class ACMPCACertificateValidity : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateValidity'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html'

    hidden [object] $_value
    hidden [object] $_type

    [double] $Value
    [string] $Type

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Type -Value {
            $this._type
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._type = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateValidity() : base() {}
    ACMPCACertificateValidity([IDictionary] $props) : base($props) {}
    ACMPCACertificateValidity([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityOtherName'"

class ACMPCACertificateAuthorityOtherName : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityOtherName'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-othername.html'

    hidden [object] $_typeId
    hidden [object] $_value

    [string] $TypeId
    [string] $Value

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TypeId -Value {
            $this._typeId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._typeId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateAuthorityOtherName() : base() {}
    ACMPCACertificateAuthorityOtherName([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityOtherName([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateExtendedKeyUsage'"

class ACMPCACertificateExtendedKeyUsage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateExtendedKeyUsage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html'

    hidden [object] $_extendedKeyUsageType
    hidden [object] $_extendedKeyUsageObjectIdentifier

    [string] $ExtendedKeyUsageType
    [string] $ExtendedKeyUsageObjectIdentifier

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExtendedKeyUsageType -Value {
            $this._extendedKeyUsageType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._extendedKeyUsageType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExtendedKeyUsageObjectIdentifier -Value {
            $this._extendedKeyUsageObjectIdentifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._extendedKeyUsageObjectIdentifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateExtendedKeyUsage() : base() {}
    ACMPCACertificateExtendedKeyUsage([IDictionary] $props) : base($props) {}
    ACMPCACertificateExtendedKeyUsage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityCrlConfiguration'"

class ACMPCACertificateAuthorityCrlConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityCrlConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html'

    hidden [object] $_enabled
    hidden [object] $_expirationInDays
    hidden [object] $_customCname
    hidden [object] $_s3BucketName
    hidden [object] $_s3ObjectAcl

    [bool] $Enabled
    [int] $ExpirationInDays
    [string] $CustomCname
    [string] $S3BucketName
    [string] $S3ObjectAcl

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this._enabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExpirationInDays -Value {
            $this._expirationInDays
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._expirationInDays = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomCname -Value {
            $this._customCname
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._customCname = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3BucketName -Value {
            $this._s3BucketName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3BucketName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3ObjectAcl -Value {
            $this._s3ObjectAcl
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3ObjectAcl = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateAuthorityCrlConfiguration() : base() {}
    ACMPCACertificateAuthorityCrlConfiguration([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityCrlConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityGeneralName'"

class ACMPCACertificateAuthorityGeneralName : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateAuthorityGeneralName'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html'

    hidden [object] $_otherName
    hidden [object] $_rfc822Name
    hidden [object] $_dnsName
    hidden [object] $_directoryName
    hidden [object] $_ediPartyName
    hidden [object] $_uniformResourceIdentifier
    hidden [object] $_ipAddress
    hidden [object] $_registeredId

    [ACMPCACertificateAuthorityOtherName] $OtherName
    [string] $Rfc822Name
    [string] $DnsName
    [ACMPCACertificateAuthoritySubject] $DirectoryName
    [ACMPCACertificateAuthorityEdiPartyName] $EdiPartyName
    [string] $UniformResourceIdentifier
    [string] $IpAddress
    [string] $RegisteredId

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name OtherName -Value {
            $this._otherName
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityOtherName], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._otherName = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Rfc822Name -Value {
            $this._rfc822Name
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rfc822Name = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DnsName -Value {
            $this._dnsName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dnsName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DirectoryName -Value {
            $this._directoryName
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthoritySubject], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._directoryName = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EdiPartyName -Value {
            $this._ediPartyName
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityEdiPartyName], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ediPartyName = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UniformResourceIdentifier -Value {
            $this._uniformResourceIdentifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._uniformResourceIdentifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IpAddress -Value {
            $this._ipAddress
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ipAddress = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RegisteredId -Value {
            $this._registeredId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._registeredId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    ACMPCACertificateAuthorityGeneralName() : base() {}
    ACMPCACertificateAuthorityGeneralName([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityGeneralName([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateKeyUsage'"

class ACMPCACertificateKeyUsage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSACMPCACertificateKeyUsage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html'

    hidden [object] $_digitalSignature
    hidden [object] $_nonRepudiation
    hidden [object] $_keyEncipherment
    hidden [object] $_dataEncipherment
    hidden [object] $_keyAgreement
    hidden [object] $_keyCertSign
    hidden [object] $_cRLSign
    hidden [object] $_encipherOnly
    hidden [object] $_decipherOnly

    [bool] $DigitalSignature
    [bool] $NonRepudiation
    [bool] $KeyEncipherment
    [bool] $DataEncipherment
    [bool] $KeyAgreement
    [bool] $KeyCertSign
    [bool] $CRLSign
    [bool] $EncipherOnly
    [bool] $DecipherOnly

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DigitalSignature -Value {
            $this._digitalSignature
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._digitalSignature = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NonRepudiation -Value {
            $this._nonRepudiation
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._nonRepudiation = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyEncipherment -Value {
            $this._keyEncipherment
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyEncipherment = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataEncipherment -Value {
            $this._dataEncipherment
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataEncipherment = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyAgreement -Value {
            $this._keyAgreement
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyAgreement = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyCertSign -Value {
            $this._keyCertSign
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyCertSign = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CRLSign -Value {
            $this._cRLSign
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cRLSign = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncipherOnly -Value {
            $this._encipherOnly
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encipherOnly = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DecipherOnly -Value {
            $this._decipherOnly
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._decipherOnly = $value
        }
    }

    ACMPCACertificateKeyUsage() : base() {}
    ACMPCACertificateKeyUsage([IDictionary] $props) : base($props) {}
    ACMPCACertificateKeyUsage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthority'"

class ACMPCACertificateAuthority : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSACMPCACertificateAuthority'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html'

    hidden [string[]] $_attributes = @('Arn','CertificateSigningRequest')
    hidden [object] $_condition

    [string] $Type = 'AWS::ACMPCA::CertificateAuthority'
    [string] $CertificateAuthorityType
    [string] $KeyAlgorithm
    [string] $SigningAlgorithm
    [ACMPCACertificateAuthoritySubject] $Subject
    [ACMPCACertificateAuthorityRevocationConfiguration] $RevocationConfiguration
    [VSTag[]] $Tags
    [ACMPCACertificateAuthorityCsrExtensions] $CsrExtensions
    [string] $KeyStorageSecurityStandard
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateAuthorityType -Value {
            $this.Properties['CertificateAuthorityType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateAuthorityType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyAlgorithm -Value {
            $this.Properties['KeyAlgorithm']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KeyAlgorithm'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SigningAlgorithm -Value {
            $this.Properties['SigningAlgorithm']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SigningAlgorithm'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Subject -Value {
            $this.Properties['Subject']
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthoritySubject], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Subject'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RevocationConfiguration -Value {
            $this.Properties['RevocationConfiguration']
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityRevocationConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RevocationConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CsrExtensions -Value {
            $this.Properties['CsrExtensions']
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateAuthorityCsrExtensions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CsrExtensions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyStorageSecurityStandard -Value {
            $this.Properties['KeyStorageSecurityStandard']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KeyStorageSecurityStandard'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    ACMPCACertificateAuthority() : base() {}
    ACMPCACertificateAuthority([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthority([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificateAuthorityActivation'"

class ACMPCACertificateAuthorityActivation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSACMPCACertificateAuthorityActivation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html'

    hidden [string[]] $_attributes = @('CompleteCertificateChain')
    hidden [object] $_condition

    [string] $Type = 'AWS::ACMPCA::CertificateAuthorityActivation'
    [string] $CertificateAuthorityArn
    [string] $Certificate
    [string] $CertificateChain
    [string] $Status
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateAuthorityArn -Value {
            $this.Properties['CertificateAuthorityArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateAuthorityArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Certificate -Value {
            $this.Properties['Certificate']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Certificate'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateChain -Value {
            $this.Properties['CertificateChain']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateChain'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Status -Value {
            $this.Properties['Status']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Status'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    ACMPCACertificateAuthorityActivation() : base() {}
    ACMPCACertificateAuthorityActivation([IDictionary] $props) : base($props) {}
    ACMPCACertificateAuthorityActivation([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCACertificate'"

class ACMPCACertificate : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSACMPCACertificate'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html'

    hidden [string[]] $_attributes = @('Certificate','Arn')
    hidden [object] $_condition

    [string] $Type = 'AWS::ACMPCA::Certificate'
    [ACMPCACertificateApiPassthrough] $ApiPassthrough
    [string] $CertificateAuthorityArn
    [string] $CertificateSigningRequest
    [string] $SigningAlgorithm
    [string] $TemplateArn
    [ACMPCACertificateValidity] $Validity
    [ACMPCACertificateValidity] $ValidityNotBefore
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApiPassthrough -Value {
            $this.Properties['ApiPassthrough']
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateApiPassthrough], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiPassthrough'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateAuthorityArn -Value {
            $this.Properties['CertificateAuthorityArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateAuthorityArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateSigningRequest -Value {
            $this.Properties['CertificateSigningRequest']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateSigningRequest'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SigningAlgorithm -Value {
            $this.Properties['SigningAlgorithm']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SigningAlgorithm'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TemplateArn -Value {
            $this.Properties['TemplateArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TemplateArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Validity -Value {
            $this.Properties['Validity']
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateValidity], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Validity'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ValidityNotBefore -Value {
            $this.Properties['ValidityNotBefore']
        } -SecondValue {
            param([ValidateType(([ACMPCACertificateValidity], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ValidityNotBefore'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    ACMPCACertificate() : base() {}
    ACMPCACertificate([IDictionary] $props) : base($props) {}
    ACMPCACertificate([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'ACMPCAPermission'"

class ACMPCAPermission : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSACMPCAPermission'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ACMPCA::Permission'
    [string[]] $Actions
    [string] $CertificateAuthorityArn
    [string] $Principal
    [string] $SourceAccount
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Actions -Value {
            $this.Properties['Actions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Actions'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateAuthorityArn -Value {
            $this.Properties['CertificateAuthorityArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateAuthorityArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Principal -Value {
            $this.Properties['Principal']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Principal'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceAccount -Value {
            $this.Properties['SourceAccount']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SourceAccount'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    ACMPCAPermission() : base() {}
    ACMPCAPermission([IDictionary] $props) : base($props) {}
    ACMPCAPermission([psobject] $props) : base($props) {}
}