VaporShell.EFS.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 'EFSAccessPointAccessPointTag'"

class EFSAccessPointAccessPointTag : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEFSAccessPointAccessPointTag'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html'

    hidden [object] $_key
    hidden [object] $_value

    [string] $Key
    [string] $Value

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Key -Value {
            $this._key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._key = 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
            }
        }
    }

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

Write-Verbose "Importing class 'EFSFileSystemElasticFileSystemTag'"

class EFSFileSystemElasticFileSystemTag : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEFSFileSystemElasticFileSystemTag'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html'

    hidden [object] $_key
    hidden [object] $_value

    [string] $Key
    [string] $Value

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Key -Value {
            $this._key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._key = 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
            }
        }
    }

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

Write-Verbose "Importing class 'EFSAccessPointRootDirectory'"

class EFSAccessPointRootDirectory : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEFSAccessPointRootDirectory'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html'

    hidden [object] $_path
    hidden [object] $_creationInfo

    [string] $Path
    [EFSAccessPointCreationInfo] $CreationInfo

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

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

Write-Verbose "Importing class 'EFSFileSystemLifecyclePolicy'"

class EFSFileSystemLifecyclePolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEFSFileSystemLifecyclePolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html'

    hidden [object] $_transitionToIA
    hidden [object] $_transitionToPrimaryStorageClass

    [string] $TransitionToIA
    [string] $TransitionToPrimaryStorageClass

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

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

Write-Verbose "Importing class 'EFSFileSystemBackupPolicy'"

class EFSFileSystemBackupPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEFSFileSystemBackupPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-backuppolicy.html'

    hidden [object] $_status

    [string] $Status

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

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

Write-Verbose "Importing class 'EFSAccessPointCreationInfo'"

class EFSAccessPointCreationInfo : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEFSAccessPointCreationInfo'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html'

    hidden [object] $_ownerUid
    hidden [object] $_ownerGid
    hidden [object] $_permissions

    [string] $OwnerUid
    [string] $OwnerGid
    [string] $Permissions

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

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

Write-Verbose "Importing class 'EFSAccessPointPosixUser'"

class EFSAccessPointPosixUser : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEFSAccessPointPosixUser'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html'

    hidden [object] $_uid
    hidden [object] $_gid
    hidden [object] $_secondaryGids

    [string] $Uid
    [string] $Gid
    [string[]] $SecondaryGids

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

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

Write-Verbose "Importing class 'EFSMountTarget'"

class EFSMountTarget : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSEFSMountTarget'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html'

    hidden [string[]] $_attributes = @('Id','IpAddress')
    hidden [object] $_condition

    [string] $Type = 'AWS::EFS::MountTarget'
    [string] $IpAddress
    [string] $FileSystemId
    [string[]] $SecurityGroups
    [string] $SubnetId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name IpAddress -Value {
            $this.Properties['IpAddress']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IpAddress'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FileSystemId -Value {
            $this.Properties['FileSystemId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FileSystemId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityGroups -Value {
            $this.Properties['SecurityGroups']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SecurityGroups'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubnetId -Value {
            $this.Properties['SubnetId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SubnetId'] = 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
        }
    }

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

Write-Verbose "Importing class 'EFSFileSystem'"

class EFSFileSystem : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSEFSFileSystem'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html'

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

    [string] $Type = 'AWS::EFS::FileSystem'
    [bool] $Encrypted
    [EFSFileSystemElasticFileSystemTag[]] $FileSystemTags
    [string] $KmsKeyId
    [EFSFileSystemLifecyclePolicy[]] $LifecyclePolicies
    [string] $PerformanceMode
    [double] $ProvisionedThroughputInMibps
    [string] $ThroughputMode
    [VSJson] $FileSystemPolicy
    [bool] $BypassPolicyLockoutSafetyCheck
    [EFSFileSystemBackupPolicy] $BackupPolicy
    [string] $AvailabilityZoneName
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Encrypted -Value {
            $this.Properties['Encrypted']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Encrypted'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FileSystemTags -Value {
            $this.Properties['FileSystemTags']
        } -SecondValue {
            param([ValidateType(([EFSFileSystemElasticFileSystemTag], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['FileSystemTags'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KmsKeyId -Value {
            $this.Properties['KmsKeyId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KmsKeyId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LifecyclePolicies -Value {
            $this.Properties['LifecyclePolicies']
        } -SecondValue {
            param([ValidateType(([EFSFileSystemLifecyclePolicy], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['LifecyclePolicies'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PerformanceMode -Value {
            $this.Properties['PerformanceMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PerformanceMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisionedThroughputInMibps -Value {
            $this.Properties['ProvisionedThroughputInMibps']
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProvisionedThroughputInMibps'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ThroughputMode -Value {
            $this.Properties['ThroughputMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ThroughputMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FileSystemPolicy -Value {
            $this.Properties['FileSystemPolicy']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['FileSystemPolicy'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['FileSystemPolicy']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BypassPolicyLockoutSafetyCheck -Value {
            $this.Properties['BypassPolicyLockoutSafetyCheck']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BypassPolicyLockoutSafetyCheck'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupPolicy -Value {
            $this.Properties['BackupPolicy']
        } -SecondValue {
            param([ValidateType(([EFSFileSystemBackupPolicy], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BackupPolicy'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AvailabilityZoneName -Value {
            $this.Properties['AvailabilityZoneName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AvailabilityZoneName'] = 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
        }
    }

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

Write-Verbose "Importing class 'EFSAccessPoint'"

class EFSAccessPoint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSEFSAccessPoint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html'

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

    [string] $Type = 'AWS::EFS::AccessPoint'
    [string] $ClientToken
    [EFSAccessPointAccessPointTag[]] $AccessPointTags
    [string] $FileSystemId
    [EFSAccessPointPosixUser] $PosixUser
    [EFSAccessPointRootDirectory] $RootDirectory
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClientToken -Value {
            $this.Properties['ClientToken']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ClientToken'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessPointTags -Value {
            $this.Properties['AccessPointTags']
        } -SecondValue {
            param([ValidateType(([EFSAccessPointAccessPointTag], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AccessPointTags'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FileSystemId -Value {
            $this.Properties['FileSystemId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FileSystemId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PosixUser -Value {
            $this.Properties['PosixUser']
        } -SecondValue {
            param([ValidateType(([EFSAccessPointPosixUser], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PosixUser'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RootDirectory -Value {
            $this.Properties['RootDirectory']
        } -SecondValue {
            param([ValidateType(([EFSAccessPointRootDirectory], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RootDirectory'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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