VaporShell.Backup.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 'BackupBackupPlanCopyActionResourceType'"

class BackupBackupPlanCopyActionResourceType : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBackupBackupPlanCopyActionResourceType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-copyactionresourcetype.html'

    hidden [object] $_lifecycle
    hidden [object] $_destinationBackupVaultArn

    [BackupBackupPlanLifecycleResourceType] $Lifecycle
    [string] $DestinationBackupVaultArn

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

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

Write-Verbose "Importing class 'BackupBackupSelectionConditionResourceType'"

class BackupBackupSelectionConditionResourceType : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBackupBackupSelectionConditionResourceType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html'

    hidden [object] $_conditionValue
    hidden [object] $_conditionKey
    hidden [object] $_conditionType

    [string] $ConditionValue
    [string] $ConditionKey
    [string] $ConditionType

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

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

Write-Verbose "Importing class 'BackupBackupPlanBackupPlanResourceType'"

class BackupBackupPlanBackupPlanResourceType : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBackupBackupPlanBackupPlanResourceType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html'

    hidden [object] $_backupPlanName
    hidden [object] $_advancedBackupSettings
    hidden [object] $_backupPlanRule

    [string] $BackupPlanName
    [BackupBackupPlanAdvancedBackupSettingResourceType[]] $AdvancedBackupSettings
    [BackupBackupPlanBackupRuleResourceType[]] $BackupPlanRule

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupPlanName -Value {
            $this._backupPlanName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._backupPlanName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdvancedBackupSettings -Value {
            $this._advancedBackupSettings
        } -SecondValue {
            param([ValidateType(([BackupBackupPlanAdvancedBackupSettingResourceType], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._advancedBackupSettings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupPlanRule -Value {
            $this._backupPlanRule
        } -SecondValue {
            param([ValidateType(([BackupBackupPlanBackupRuleResourceType], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._backupPlanRule = $value
        }
    }

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

Write-Verbose "Importing class 'BackupBackupVaultNotificationObjectType'"

class BackupBackupVaultNotificationObjectType : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBackupBackupVaultNotificationObjectType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html'

    hidden [object] $_sNSTopicArn
    hidden [object] $_backupVaultEvents

    [string] $SNSTopicArn
    [string[]] $BackupVaultEvents

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

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

Write-Verbose "Importing class 'BackupBackupPlanAdvancedBackupSettingResourceType'"

class BackupBackupPlanAdvancedBackupSettingResourceType : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBackupBackupPlanAdvancedBackupSettingResourceType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html'

    hidden [VSJson] $_backupOptions
    hidden [object] $_resourceType

    [VSJson] $BackupOptions
    [string] $ResourceType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupOptions -Value {
            $this._backupOptions
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._backupOptions = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceType -Value {
            $this._resourceType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._resourceType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'BackupBackupPlanLifecycleResourceType'"

class BackupBackupPlanLifecycleResourceType : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBackupBackupPlanLifecycleResourceType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html'

    hidden [object] $_deleteAfterDays
    hidden [object] $_moveToColdStorageAfterDays

    [double] $DeleteAfterDays
    [double] $MoveToColdStorageAfterDays

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeleteAfterDays -Value {
            $this._deleteAfterDays
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deleteAfterDays = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MoveToColdStorageAfterDays -Value {
            $this._moveToColdStorageAfterDays
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._moveToColdStorageAfterDays = $value
        }
    }

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

Write-Verbose "Importing class 'BackupBackupSelectionBackupSelectionResourceType'"

class BackupBackupSelectionBackupSelectionResourceType : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBackupBackupSelectionBackupSelectionResourceType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html'

    hidden [object] $_listOfTags
    hidden [object] $_selectionName
    hidden [object] $_iamRoleArn
    hidden [object] $_resources

    [BackupBackupSelectionConditionResourceType[]] $ListOfTags
    [string] $SelectionName
    [string] $IamRoleArn
    [string[]] $Resources

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ListOfTags -Value {
            $this._listOfTags
        } -SecondValue {
            param([ValidateType(([BackupBackupSelectionConditionResourceType], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._listOfTags = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SelectionName -Value {
            $this._selectionName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._selectionName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IamRoleArn -Value {
            $this._iamRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iamRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Resources -Value {
            $this._resources
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._resources = @($value)
        }
    }

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

Write-Verbose "Importing class 'BackupBackupPlanBackupRuleResourceType'"

class BackupBackupPlanBackupRuleResourceType : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBackupBackupPlanBackupRuleResourceType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html'

    hidden [object] $_completionWindowMinutes
    hidden [object] $_scheduleExpression
    hidden [VSJson] $_recoveryPointTags
    hidden [object] $_copyActions
    hidden [object] $_lifecycle
    hidden [object] $_targetBackupVault
    hidden [object] $_startWindowMinutes
    hidden [object] $_ruleName

    [double] $CompletionWindowMinutes
    [string] $ScheduleExpression
    [VSJson] $RecoveryPointTags
    [BackupBackupPlanCopyActionResourceType[]] $CopyActions
    [BackupBackupPlanLifecycleResourceType] $Lifecycle
    [string] $TargetBackupVault
    [double] $StartWindowMinutes
    [string] $RuleName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CompletionWindowMinutes -Value {
            $this._completionWindowMinutes
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._completionWindowMinutes = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScheduleExpression -Value {
            $this._scheduleExpression
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._scheduleExpression = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RecoveryPointTags -Value {
            $this._recoveryPointTags
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._recoveryPointTags = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CopyActions -Value {
            $this._copyActions
        } -SecondValue {
            param([ValidateType(([BackupBackupPlanCopyActionResourceType], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._copyActions = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Lifecycle -Value {
            $this._lifecycle
        } -SecondValue {
            param([ValidateType(([BackupBackupPlanLifecycleResourceType], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._lifecycle = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetBackupVault -Value {
            $this._targetBackupVault
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetBackupVault = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StartWindowMinutes -Value {
            $this._startWindowMinutes
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._startWindowMinutes = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RuleName -Value {
            $this._ruleName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ruleName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'BackupBackupPlan'"

class BackupBackupPlan : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSBackupBackupPlan'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html'

    hidden [string[]] $_attributes = @('VersionId','BackupPlanId','BackupPlanArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Backup::BackupPlan'
    [BackupBackupPlanBackupPlanResourceType] $BackupPlan
    [VSJson] $BackupPlanTags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupPlan -Value {
            $this.Properties['BackupPlan']
        } -SecondValue {
            param([ValidateType(([BackupBackupPlanBackupPlanResourceType], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BackupPlan'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupPlanTags -Value {
            $this.Properties['BackupPlanTags']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['BackupPlanTags'] = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'BackupBackupVault'"

class BackupBackupVault : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSBackupBackupVault'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html'

    hidden [string[]] $_attributes = @('BackupVaultName','BackupVaultArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Backup::BackupVault'
    [VSJson] $BackupVaultTags
    [string] $BackupVaultName
    [string] $EncryptionKeyArn
    [BackupBackupVaultNotificationObjectType] $Notifications
    [VSJson] $AccessPolicy
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupVaultTags -Value {
            $this.Properties['BackupVaultTags']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['BackupVaultTags'] = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupVaultName -Value {
            $this.Properties['BackupVaultName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BackupVaultName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncryptionKeyArn -Value {
            $this.Properties['EncryptionKeyArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EncryptionKeyArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Notifications -Value {
            $this.Properties['Notifications']
        } -SecondValue {
            param([ValidateType(([BackupBackupVaultNotificationObjectType], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Notifications'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessPolicy -Value {
            $this.Properties['AccessPolicy']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['AccessPolicy'] = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'BackupBackupSelection'"

class BackupBackupSelection : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSBackupBackupSelection'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html'

    hidden [string[]] $_attributes = @('BackupPlanId','SelectionId')
    hidden [object] $_condition

    [string] $Type = 'AWS::Backup::BackupSelection'
    [BackupBackupSelectionBackupSelectionResourceType] $BackupSelection
    [string] $BackupPlanId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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